使用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 相关文章推荐
Python备份Mysql脚本
Aug 11 Python
使用Python构建Hopfield网络的教程
Apr 14 Python
Python验证企业工商注册码
Oct 25 Python
python安装与使用redis的方法
Apr 19 Python
python构建自定义回调函数详解
Jun 20 Python
Python Socket编程之多线程聊天室
Jul 28 Python
使用Python写一个量化股票提醒系统
Aug 22 Python
python3中的eval和exec的区别与联系
Oct 10 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
Jan 08 Python
django前端页面下拉选择框默认值设置方式
Aug 09 Python
python实现求纯色彩图像的边框
Apr 08 Python
python神经网络学习 使用Keras进行简单分类
May 04 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
递归列出所有文件和目录
2006/10/09 PHP
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
PHP学习之数组值的操作
2011/04/17 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
PHP7 其他修改
2021/03/09 PHP
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
js下拉菜单语言选项简单实现
2013/09/23 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
JavaScript实现短暂提示框功能
2018/04/04 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
JS数组属性去重并校验重复数据
2020/01/10 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
Python实现的合并两个有序数组算法示例
2019/03/04 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
HTML5图片预览实例分享
2014/06/04 HTML / CSS
Viking比利时:购买办公用品
2019/10/30 全球购物
销售主管岗位职责
2014/02/08 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
交通事故起诉书
2015/05/19 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
企业团队精神心得体会
2016/01/19 职场文书