做滲透測試的時候,有個比較大的項目,裡面有幾百個網站,這樣你必須先確定哪些網站是正常,哪些網站是不正常的。所以自己就編了一個小腳本,以後方便使用。
具體實現的程式碼如下:
#!/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腳本實現批量網站存活檢測遇到問題及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!