查詢網域名稱是否被註冊

2021-09-02 01:38:19 字數 1956 閱讀 6904

#!/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過或者作弊過的網域名稱,那麼對於 的流量特別是在搜尋引擎中的表現,那就有很大的影響了,那麼如何才能判斷乙個網域名...