python脚本,检测域名是否被注册

 Python批量检测Url是否已注册(抓域名,抢域名小工具,还在开发中)

感觉垃圾的一批,想放弃了,整出来也没什么用,目前多线程已经开发完毕,每秒提交200次

环境是Python3.7

有些库是不用的,本来打算输出到表格文件里的

报错了直接删掉那个库或者pip安装一哈就好了

 

目录结构:

  •     根目录
    • Main.py
    • data
      • url.txt
      • realut.bat
# -*- coding: utf-8 -*-
import urllib.request
import urllib
from threading import Thread
import random
from xlwt import *
import requests
import ssl
from openpyxl.styles import Alignment
from openpyxl.styles import Font
from openpyxl import Workbook
from urllib import request
import time



#此脚本于2019.06.22开始开发
#	功能:
#		1.自动批量化监测url是否被注册
#		2.自动将监测结果写入realut.txt文件
#		3.自动切换代理IP防止IP被封
#		4.开发中。。。




#随机查询接口
def Rand_Url_API():
	url = ["https://cnz.co/domain-registration/domain.php?action=caajax&domain_name=","http://panda.www.net.cn/cgi-bin/check.cgi?area_domain="]
	data = random.choice(url)#返回随机API,一共就俩。。。
	# data = "http://panda.www.net.cn/cgi-bin/check.cgi?area_domain="
	return data




#随机请求头,查询过多封IP,用来骗服务器。。。。
def Rand_User_Agents():
	user_agents =  [
	"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36",
	'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
	'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
	'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11',
	'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;',
	'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)',
	'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11',
	'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60',
	'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2',
	'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36',
	'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
	'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16',
	"Mozilla/5.0(Macintosh;IntelMacOSX10.6;rv:2.0.1)Gecko/20100101Firefox/4.0.1",
    "Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1)",
    "Opera/9.80(WindowsNT6.1;U;en)Presto/2.8.131Version/11.11",
    "Mozilla/5.0(Macintosh;IntelMacOSX10_7_0)AppleWebKit/535.11(KHTML,likeGecko)Chrome/17.0.963.56Safari/535.11",
    "Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1)",
    "Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Trident/4.0;SE2.XMetaSr1.0;SE2.XMetaSr1.0;.NETCLR2.0.50727;SE2.XMetaSr1.0)"
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
    "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
	]
	headers = {'User-Agent':random.choice(user_agents)}
	return headers#返回请求头




#获取目标url地址
def Url_Data():
	f = open('data/url.txt','r+')
	data = []#定义返回数据list
	line = f.readline()
	while line:
		line = f.readline()
		data.append(line)
	f.close()
	#print(data[48])
	return data





#提交请求获取结果判断
def Main():
	num = 1#定义一共跑了多少个url
	data = Url_Data()
	file = open('data/realut.bat','w+')
	realut = []#定义结果list
	# proxies = {"http": "http://127.0.0.1", "https": "http://127.0.0.1:1080", } # 使用代理IP。。。端口被isp禁掉了,出不去
	context = ssl._create_unverified_context()#针对https的,不了解
	for x in range(0,int(len(data))):#循环跑量,从0开始,到data的长度
		num = num + 1#每次循环num+1
		domain = data[x]#获取要查询的单次url
		uurl = Rand_Url_API()+domain#拼接url
		request = urllib.request.Request(uurl,headers=Rand_User_Agents())
		try:
			resp=urllib.request.urlopen(request,timeout=10,context=context)
			Return_data = resp.read().decode('utf-8')
			# print(Return_data)#{"status":"unavailable"} 	{"classkey":"domcno","status":"available","price":"65.00"}
			if "Domain name is not available" in Return_data or "unavailable" in Return_data:
				str = "域名:",domain,"查询结果:不能注册\n\n"
				# file.writelines(str)
				print("域名:",domain,"查询结果:不能注册\n\n")
			elif "Domain name is available" in Return_data or "price" in Return_data:
				realut.append(domain)
				# str = "域名:",domain,"查询结果:可以注册\n\n"
				file.writelines("start http://"+domain)
				print("域名:",domain,"查询结果:可以注册\n\n")
				continue
			elif "Domain name is invalid" in Return_data:
				str = "域名:",domain,"查询结果:域名参数传输错误\n\n"
				# file.writelines(str)
				print("域名:",domain,"查询结果:域名参数传输错误\n\n")
			elif "Time out" in Return_data:
				str = "域名:",domain,"查询结果:查询超时\n\n"
				# file.writelines(str)
				print("域名:",domain,"查询结果:查询超时\n\n")
		except urllib.error.HTTPError:
			print("http错误")
			time.sleep(2)
		except urllib.error.URLError:
			print("URL错误")
			time.sleep(2)
		except:
			print("域名:"+domain+"服务器罢工或者其他错误\n\n")
			time.sleep(1)
		# resp=requests.get(uurl,proxies=proxies,verify=False)

		# time.sleep(1)
	file.close()

	file1 = open('data/realut.bat', 'r+')
	infos = file1.readlines()
	# file.seek(0, 0)
	for line in infos:
		line_new = line.replace('www', 'www.')
		file1.write(line_new)
	file1.close()
	print("全部查询完毕,共计",num,"个域名")




if __name__=="__main__":
    #多线程查询
	# for x in range(0,10):
	# 	check = [Main1,Main2,Main3,Main4,Main5,Main6,Main7,Main8,Main9,Main10]
	#       Thread(target=check[x]).start()
	Main()

 

 

posted @ 2019-06-25 20:23  时光途径  阅读(794)  评论(0编辑  收藏  举报