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,"查询结果:不能注册
"
# file.writelines(str)
print("域名:",domain,"查询结果:不能注册
")
elif "Domain name is available" in Return_data or "price" in Return_data:
realut.append(domain)
# str = "域名:",domain,"查询结果:可以注册
"
file.writelines("start http://"+domain)
print("域名:",domain,"查询结果:可以注册
")
continue
elif "Domain name is invalid" in Return_data:
str = "域名:",domain,"查询结果:域名参数传输错误
"
# file.writelines(str)
print("域名:",domain,"查询结果:域名参数传输错误
")
elif "Time out" in Return_data:
str = "域名:",domain,"查询结果:查询超时
"
# file.writelines(str)
print("域名:",domain,"查询结果:查询超时
")
except urllib.error.HTTPError:
print("http错误")
time.sleep(2)
except urllib.error.URLError:
print("URL错误")
time.sleep(2)
except:
print("域名:"+domain+"服务器罢工或者其他错误
")
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()