#!/usr/bin/env python
#-*-coding:utf8-*-
# 測試版本python2.7
import urllib2 #是python2.7自帶的庫,直接import即可。作用:模擬請求。
from multiprocessing import pool #multiprocessing包是python中的多程序管理包 pool是其中的類。
import itertools as its #itertools是迭代器 =its
def writelog(mfile,message): #定義乙個函式-寫檔案:writelog。mfile:檔名,message:檔案內容
with open(mfile,'a+') as f:#開啟檔名mfile,a+是開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。
f.write(message)#向mfile中追加寫入message內容
def createdomain(ws,num,sfx):#定義乙個函式-建立網域名稱:ws:迭代物件;num:關鍵字引數,用於指定重複生成序列的次數;sfx:為傳入的固定值
r = its.product(ws,repeat=num)#用於求多個可迭代物件的笛卡爾積,它跟巢狀的 for 迴圈等價
for i in r: #逐項讀取列表,實時生成的資料
domain = ''.join(i) + sfx#將變數i和引數sfx進行組合,賦值給變數domain
yield domain#yield 是乙個類似 return 的關鍵字,只是這個函式返回的是個生成器。這裡返回domain的值
def checkdomainstatus(domain):#定義乙個函式-檢測網域名稱狀態:domain:需要輸入的引數,本次代表的是網域名稱
api = ""#api位址
url = api + domain#訪問的url鏈結,通過api和domain進行控制
try:
xhtml = urllib2.urlopen(url,timeout=5).read() #開啟網頁,讀取內容
except: #如果沒有正確讀取內容,直接返回
return
r1 = xhtml.find(r'211') # 字串表示 已經被註冊
r2 = xhtml.find(r'210') # 字串表示 還未被註冊
if r2 != -1:#如果存在未註冊的網域名稱
# print domain
writelog('domain_enable.txt',domain+'\n')#呼叫定義的writelog函式,將domain寫入domain_enable.txt檔案中
if __name__ == "__main__":#__main__是當前模組名,使用if這句話,表示是否直接執行該.py檔案
words = 'abcdefghijklmnopqrstuvwxyz'#定義乙個字串,裡面是字母
len = 5#定義長度為5
suffix = '.com'#定義字尾變數為.com
domains = createdomain(words,len,suffix)#呼叫cretedomain函式,獲取word中隨機的5個字元,加上字尾組成網域名稱
task_pool = pool(5)#進行多程序訪問,程序數為5
results = task_pool.map(checkdomainstatus,domains)#將函式checkdomainstatus作用於序列(domains)的每個元素,並用乙個列表來提供返回值;如果checkdomainstatus為none,checkdomainstatus表現為乙個身份函式,返回乙個含有每個序列中元素集合的n個元組的列表。
task_pool.close()#關閉多程序,之後不會有子程序加入
task_pool.join()#等待所有子程序結束
參考連線:
PSL判定網域名稱字尾是否是合法註冊網域名稱
在做有關流量中網域名稱聚類的事情,需要進行資料過濾。做實驗過程中的小探索,如何利用psl public suffix list 判斷網域名稱字尾是否合法,即是註冊網域名稱。發現有兩個python的包,用兩個包做出來效果完全相同,即在同一資料集濾除相同的不合法網域名稱 1.from publicsuf...
Python 爬取網域名稱校驗(判斷網域名稱是否註冊)
啥也不多說,直接貼 1 import random 2from requests import post34 5class ymcheck 6def init self 7 self.randcode 8 self.url 910def getcom self 11 self.randcode 12...
如何判斷新網域名稱是否被K過
如何判斷新網域名稱是否被k過 大家在製作完乙個 以後,都要給這個 選個網域名稱,而網域名稱的選擇在優化中也是很重要的一步,選擇乙個好的網域名稱,對 的發展會有很大的幫助,如果選擇了乙個被k過或者作弊過的網域名稱,那麼對於 的流量特別是在搜尋引擎中的表現,那就有很大的影響了,那麼如何才能判斷乙個網域名...