使用Python脚本实现批量网站存活检测遇到问题及解决方法


Posted in Python onOctober 11, 2016

做渗透测试的时候,有个比较大的项目,里面有几百个网站,这样你必须首先确定哪些网站是正常,哪些网站是不正常的。所以自己就编了一个小脚本,为以后方便使用。

具体实现的代码如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
'''
@Author:joy_nick
@博客:http://byd.dropsec.xyz/
'''
import requests
import sys
f = open('url.txt', 'r')
url = f.readlines()
length = len(url)
url_result_success=[]
url_result_failed=[]
for i in range(0,length):
try:
response = requests.get(url[i].strip(), verify=False, allow_redirects=True, timeout=5)
if response.status_code != 200:
raise requests.RequestException(u"Status code error: {}".format(response.status_code))
except requests.RequestException as e:
url_result_failed.append(url[i])
continue
url_result_success.append(url[i])
f.close()
result_len = len(url_result_success)
for i in range(0,result_len):
print '网址%s' % url_result_success[i].strip()+'打开成功'

测试结果如下:

遇到的问题:

刚开始测试的时候,遇到只要是不能错误,或者不存在的,直接报错停止程序。后来发现是因为response.status_code != 200这里取状态码的时候错误。

因为有的网站不能打开的话,不会返回状态码。所以程序就不知道!==200怎么处理了。

解决方法:

使用try except else捕捉异常

具体代码为:

try:
response = requests.get(url[i].strip(), verify=False, allow_redirects=True, timeout=5)
if response.status_code != 200:
raise requests.RequestException(u"Status code error: {}".format(response.status_code))
except requests.RequestException as e:
url_result_failed.append(url[i])
continue

以上所述是小编给大家介绍的使用Python脚本实现批量网站存活检测遇到问题及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
10款最好的Web开发的 Python 框架
Mar 18 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
python django 访问静态文件出现404或500错误
Jan 20 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 Python
Python插件virtualenv搭建虚拟环境
Nov 20 Python
对python实现模板生成脚本的方法详解
Jan 30 Python
Python/Django后端使用PIL Image生成头像缩略图
Apr 30 Python
用Python获取摄像头并实时控制人脸的实现示例
Jul 11 Python
Python-Flask:动态创建表的示例详解
Nov 22 Python
关于Django Models CharField 参数说明
Mar 31 Python
python如何实现图片压缩
Sep 11 Python
asyncio异步编程之Task对象详解
Mar 13 Python
深入浅析ImageMagick命令执行漏洞
Oct 11 #Python
Zabbix实现微信报警功能
Oct 09 #Python
python 2.6.6升级到python 2.7.x版本的方法
Oct 09 #Python
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 #Python
解决python2.7 查询mysql时出现中文乱码
Oct 09 #Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
Oct 09 #Python
python连接mysql实例分享
Oct 09 #Python
You might like
php学习之数据类型之间的转换介绍
2011/06/09 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
laravel利用中间件做防非法登录和权限控制示例
2019/10/21 PHP
PHP多进程简单实例小结
2019/11/09 PHP
JavaScript 三种创建对象的方法
2009/10/16 Javascript
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
js实现时间轴自动排列效果
2017/03/09 Javascript
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
python八大排序算法速度实例对比
2017/12/06 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
2017/12/14 Python
python实现kMeans算法
2017/12/21 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
市场部管理制度
2014/02/02 职场文书
2015年新农合工作总结
2015/03/30 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
PHP遍历数组的6种方式总结
2021/11/17 PHP
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电