python批量检测URL访问状态
前言由于环境问题弄了两个版本的脚本,下面分享一下。python2照着python3改的#-*- coding: utf-8 -*-#!/usr/bin/python#\..... --... ..--- ---..\..... ....- .---- --...#导入模块import timefrom io import openimport urllib2, urllib#解决中文字符问题imp
·
前言
由于环境问题弄了两个版本的脚本,下面分享一下。
python2.6.6
照着python3改的
注意字符间隔,python版本…
#-*- coding: utf-8 -*-
#!/usr/bin/python
#\..... --... ..--- ---..\..... ....- .---- --...
#导入模块
import time
from io import open
import urllib2, urllib
#解决中文字符问题
import sys
reload(sys)
sys.setdefaultencoding('utf8')
## 将获取网站状态码以及输出异常域名的功能写成函数,调用的时候只需要将文件路径放进参数即可
def get_error_mode(mode_list):
##定义一个set集合
error_list= set()
url_list = open(mode_list, 'r')
for line in url_list:
##设置url格式,去除空行,非空行的行才可以进入条件进行循环
if len(line.strip()):
line_no_blank = line.strip()
#设置url格式,加http://头
url = "http://"+line_no_blank
try:
start = time.clock()
## 配置超时时间
file = urllib2.urlopen(url,data=None,timeout=10)
## 获取访问状态
elapsed = (time.clock() - start)
print "%s可正常访问" % line_no_blank
print "状态码:%s" % file.getcode()
print "耗时:%s" % elapsed
print "+++++++++++++++++++++++++++++++++++++++"
#异常域名会进入except,可以得到出错HTTPError
except urllib2.HTTPError, e:
print "%s异常" % line_no_blank
if hasattr(e, "code"):
print "错误状态码: %s" % e.code
error_code = unicode(e.code)
print "出错原因:%s" % e
error_reason = unicode(e)
print "+++++++++++++++++++++++++++++++++++++++"
error_status = error_code + '\t'+error_reason
error_list.add(line_no_blank+'\t'+error_status+"\n")
#异常域名会先进入except,可以得到出错URLError
except urllib2.URLError, e:
print "%s异常" % line_no_blank
if hasattr(e, "reason"):
print "出错原因:%s" % e.reason
error_reason = unicode(e.reason)
print "+++++++++++++++++++++++++++++++++++++++"
#配置要写入文件内容
error_status = error_reason
error_list.add(line_no_blank+'\t'+error_status+"\n")
url_list.close()
#在终端打印内容
print "所有访问异常url:"
for line_lai in error_list:
print line_lai
#将error_list写入一个文件
abnormal_list = open('/xxx/xxx/访问异常url.txt','w')
abnormal_list.writelines(error_list)
abnormal_list.close()
#下面配置进行批量检测的url
get_error_mode('/xxx/xxx/url.txt')
python3.6.5
照着网友改的
#!/usr/bin/python
#-*-coding: utf-8 -*-
#\..... --... ..--- ---..\..... ....- .---- --...
import urllib.request,urllib.error,time
## 将获取网站状态码以及输出异常域名的功能写成函数,调用的时候只需要将文件路径放进参数即可
def get_error_mode(mode_list):
##定义一个set集合
error_list= set()
url_list = open(mode_list, 'r')
for line in url_list:
##设置url格式,去除空行,非空行的行才可以进入条件进行循环
if len(line.strip()):
line_no_blank = line.strip()
url = "http://"+line_no_blank
try:
start = time.clock()
## 配置超时时间
file = urllib.request.urlopen(url,timeout= 10)
## 获取访问状态
elapsed = (time.clock() - start)
print "%s可正常访问" % line_no_blank
print "状态码:%s" % file.getcode()
print "耗时:%s" % elapsed
print "+++++++++++++++++++++++++++++++++++++++"
#异常域名会进入except,可以得到出错URLError
except urllib.error.URLError as e:
print("%s异常" % line_no_blank)
if hasattr(e, "code"):
print("错误状态码: %s" % e.code)
error_code = str(e.code)
if hasattr(e ,"reason"):
print("出错原因:%s" % e.reason)
error_reason = str(e.reason)
#配置要写入文件内容
error_status = error_code + '\t'+error_reason
error_list.add(line_no_blank+'\t'+error_status+"\n")
url_list.close()
#在终端打印内容
print("所有访问异常域名:")
for line_lai in error_list:
print(line_lai)
#将error_list写入一个文件
abnormal_list = open('/xxx/xxx/访问异常url.txt','w')
abnormal_list.writelines(error_list)
abnormal_list.close()
#下面配置进行批量检测的url
get_error_mode('/xxx/xxx/url.txt')
更多推荐
已为社区贡献1条内容
所有评论(0)