Probleme und Lösungen, die bei der Verwendung von Python-Skripten zur Implementierung der Batch-Überlebenserkennung von Websites aufgetreten sind

WBOY
Freigeben: 2016-12-05 13:27:16
Original
1712 Leute haben es durchsucht

Bei Penetrationstests handelt es sich um ein relativ großes Projekt mit Hunderten von Websites. Daher müssen Sie zunächst feststellen, welche Websites normal und welche abnormal sind. Deshalb habe ich ein kleines Skript geschrieben, um es in Zukunft einfacher verwenden zu können.

Der spezifische Implementierungscode lautet wie folgt:

#!/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()+'打开成功'
Nach dem Login kopieren

Die Testergebnisse lauten wie folgt:

Aufgetretene Probleme:

Wenn ich zum ersten Mal mit dem Testen begann und ein Fehler auftrat, der nicht gemacht werden konnte oder nicht existierte, habe ich direkt einen Fehler gemeldet und das Programm gestoppt. Später fand ich heraus, dass es daran lag, dass „response.status_code != 200“ falsch war, als ich hier den Statuscode erhielt.

Da einige Websites nicht geöffnet werden können, wird der Statuscode nicht zurückgegeben. Das Programm weiß es also nicht! ==Was tun mit 200?

Lösung:

Verwenden Sie try außer else, um Ausnahmen abzufangen

Der spezifische Code lautet:

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
Nach dem Login kopieren

Das Obige ist das Problem und die Lösung, die der Herausgeber für die Implementierung der Batch-Website-Überlebenserkennung eingeführt hat. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht rechtzeitig. Ich möchte mich auch bei allen für Ihre Unterstützung der Script House-Website bedanken!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!