使用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 ElementTree 基本读操作示例
Apr 09 Python
python中while循环语句用法简单实例
May 07 Python
Python自定义线程池实现方法分析
Feb 07 Python
python矩阵转换为一维数组的实例
Jun 05 Python
Python3.6中Twisted模块安装的问题与解决
Apr 15 Python
对python3.4 字符串转16进制的实例详解
Jun 12 Python
python求最大值,不使用内置函数的实现方法
Jul 09 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 Python
python数据处理之如何选取csv文件中某几行的数据
Sep 02 Python
Python实现获取当前目录下文件名代码详解
Mar 10 Python
Python3.x+pyqtgraph实现数据可视化教程
Mar 14 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
Mar 30 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
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
php自动加载方式集合
2016/04/04 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
mui上拉加载更多下拉刷新数据的封装过程
2017/11/03 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
python中copy()与deepcopy()的区别小结
2018/08/03 Python
pandas通过loc生成新的列方法
2018/11/28 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
快速了解Python开发环境Spyder
2020/06/29 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
"序列点" 是什么
2016/07/29 面试题
工程承包协议书
2014/04/22 职场文书
外联部演讲稿
2014/05/24 职场文书
解放思想演讲稿
2014/09/11 职场文书
美丽心灵观后感
2015/06/01 职场文书
水浒传读书笔记
2015/06/25 职场文书
小组口号霸气押韵
2015/12/24 职场文书
如何才能写好调研报告?
2019/07/03 职场文书
Python加密与解密模块hashlib与hmac
2022/06/05 Python