功能如标题,就是要检测百度有没有收录你网站的死链,30行代码解决死链问题,不知道有多少个人用得到这个东西,所以现在就不写UI界面了,如果多人需要再考虑写吧!
脚本只支持百度检测,其他搜索引擎也一样原理,需要就自己写正则就好了。
[Python] 纯文本查看 复制代码 '''2018.10.24编写,在查询域名哪里修改域名就可以开始使用了,
在使用之前先自己手动清空或删除url。txt文件,本脚本仅支持百度检测'''
import requests,re,threading
def url_jc(url):
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
urls = requests.get(url, headers=headers).text
res = re.findall('<div class="result c-container ".*?>(.*?)</div>', urls, re.S) #比配收录内容
for i in res:
url2 = re.findall('href = "(.*?)"', i, re.S) #提取每一条链接
sta = requests.get(url2[0], timeout=5)
if (sta.status_code == 404):
fl = open("url.txt", "a")
fl.write(sta.url + "\n") # 404链接写入文件
fl.close()
if __name__ == '__main__':
url_0="查询的域名" #查询的域名 例 www.baidu.com
pn = 0
r=requests.get("http://www.baidu.com/s?wd=site:"+url_0) #
try:
re_pn=re.findall('<b style="color:#333">(.*?)</b>',r.text,re.S)[0] #比配pn
except:
re_pn=re.findall('<p><b>找到相关结果数约(.*?)个</b></p>',r.text,re.S)[0] #比配pn
pns=(re_pn.replace(",","")) #把收录数的,去掉
pns=(round((int(pns)/10)+1,0)) #计算要循环多少次
for i in range(1,int(pns)):
url="https://www.baidu.com/s?wd=site:%s&pn=%d&tn=91003609_hao_pg"%(url_0,pn)
th = threading.Thread(target=url_jc,args=(url,)) #启用线程,不过感觉没什么用
th.setDaemon(True)
th.start()
th.join()
pn=pn+10
print("检测中。。。。。。。。。。")
print("检测完成!") |