使用Python腳本實現大量網站存活檢測遇到問題及解決方法

WBOY
發布: 2016-12-05 13:27:16
原創
1711 人瀏覽過

做滲透測試的時候,有個比較大的項目,裡面有幾百個網站,這樣你必須先確定哪些網站是正常,哪些網站是不正常的。所以自己就編了一個小腳本,以後方便使用。

具體實現的程式碼如下:

#!/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腳本實現批量網站存活檢測遇到問題及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!