失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 批量判断url或域名是否可以访问

批量判断url或域名是否可以访问

时间:2019-06-14 17:18:11

相关推荐

批量判断url或域名是否可以访问

批量获取域名的工具subDomainsBrute好用,但是获取到的域名太多,不清楚每个域名是否都可以正常访问,所以使用python写了一个工具,来判断http或https页面是否可以访问,以及访问的标题内容。

代码如下,欢迎交流,需要自取。

"""======================@Auther:CacheYu@Time:/10/24 下午======================"""#!usr/bin/python#coding:utf-8from bs4 import BeautifulSoupimport urllib.requestimport requestsimport timeimport ioimport sys#python3# 判断是否能访问;获取标题;进行报错处理def exception(url):try:r = requests.get(url=url)time.sleep(0.01)if(r.status_code == 200):#判断获取的r的编码方式,如果是utf-8的话,则再进行utf-8编码(由于网页的原因,部分utf-8需要再次编码,否则,会出现乱码)if(r.apparent_encoding=='utf-8'):r.encoding = 'utf-8'soup = BeautifulSoup(r.text, 'lxml')title = soup.title.text.replace(' ','').replace('\t','').replace('\n','').replace('\r','')print(url+'\t'+title)else:time.sleep(2)print(url+'\t访问页面出错')except requests.exceptions.ConnectionError:time.sleep(2)print(url+'\t未知的服务器')except requests.exceptions.ConnectTimeout:time.sleep(2)print(url+'\t连接、读取超时')# 获取每行urldef urls(lines):for line in lines:# 判断是否为空行if (line =='\n'):passelse:line = line.replace(' ','').replace('\t','').replace('\n','')if(line[0:4] == 'http'):exception(line)else:url_h = 'http://'+lineexception(url_h)url_hs = 'https://'+lineexception(url_hs)if __name__ =='__main__':#test.txt是存放url或host的文件file = open('test.txt')lines = file.readlines()print('开始检查:\nurl\t标题')urls(lines)file.close()

写的过程中,由于不熟悉,两个地方思考了很久。

一个是获取url的内容,是使用urllib.request还是使用request。已转发文章。

一个是由于获取了不同网站的内容,当提取标题的时候,涉及到如何统一编码。python3目前基本上解决了大部分编码问题,由于本次的编码有点特殊,同样的utf-8编码,一个页面可以正常转换,一个却变成乱码,如果均将编码转成utf-8,则其他编码格式,例如GB2312编码的网站则乱码显示。

python2和python3的一些不同

1) python2中默认使用ascii,python3中默认使用utf-8

2) Python2中,str就是编码后的结果bytes,str=bytes,所以s只能decode。

3) python3中的字符串与python2中的u'字符串',都是unicode,只能encode,所以无论如何打印都不会乱码,因为可以理解为从内存打印到内存,即内存->内存,unicode->unicode

4) python3中,str是unicode,当程序执行时,无需加u,str也会被以unicode形式保存新的内存空间中,str可以直接encode成任意编码格式,s.encode('utf-8'),s.encode('gbk')

部分代码参考地址:/DicksonJYL/p/9464316.html

编码图片来源:/schut/p/8406897.html

如果觉得《批量判断url或域名是否可以访问》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。