es tut mir leid, wenn ich euch mit einer vermutlichen Anfänger Frage belästigen muss aber ich stehe einfach auf dem Schlauch und habe so kein Beispiel gefunden, um mein Problem zu lösen.
Also worum geht es?
Ich untersuche derzeit die Request und Response Header von Webseiten mit unterschiedlichen Browsern curl und Python requests für meine Masterarbeit.
Nachdem ich mit meinen manuellen Tests fertig bin, möchte ich meine Studie ausweiten und die Schritte automatisieren.
Und jetzt hänge ich gerade an einem vermeintlich leichten Problem. Also ich möchte eine Liste an Webseiten scannen, damit ich mir das ganze im nächsten Schritt mit wireshark genauer anschauen kann. Aus diesem Grunde möchte ich nur auf Seiten zugreifen, die noch mit 'http://' erreichbar sind und keine automatische Weiterleitung nach 'https://' enthalten.
Nun bietet requests ja 3 Möglichkeiten an um mit redirects umzugehen :
- requests.history
requests.is_redirect
requests.is_permanent_redirect
Hier ist mein Dummy Code:
Code: Alles auswählen
import requests
import time
urls = ['https://www.example.com',
'http://www.ard.de',
'http://bloomberg.com',
'http://github.com']
for url in urls:
r = requests.get(url, allow_redirects=False)
time.sleep(2)
print("URL: ", r.url)
print("Status Code: ", r.status_code)
print("r.history: ", r.history)
print("r.is_redirect: ", r.is_redirect)
print("r.is_permanent_redirect: ", r.is_permanent_redirect)
Code: Alles auswählen
URL: http://www.example.com/
Status Code: 200
r.history: []
r.is_redirect: False
r.is_permanent_redirect: False
URL: http://www.ard.de/
Status Code: 301
r.history: []
r.is_redirect: True
r.is_permanent_redirect: True
URL: http://bloomberg.com/
Status Code: 301
r.history: []
r.is_redirect: True
r.is_permanent_redirect: True
URL: http://github.com/
Status Code: 301
r.history: []
r.is_redirect: True
r.is_permanent_redirect: True
Code: Alles auswählen
import csv
a = 2
b = 5
c = a + b
if c == 5:
print("Das Ergebnis stimmt")
else:
if c > 5:
d = a + b
print("Das Ergebnis ist falsch" + " und" + " müsste lauten: ", (d))
with open("G:\\Request_HEADER_Suite/meintest.csv", 'w', newline='', encoding='utf-8') as result:
diversifier = csv.writer(result, delimiter=',')
result.write(str(d))
print("done")
Mein Ziel ist es, jene URLs in eine csv Datei zu schreiben, die 'nur' oder 'immer noch' mit http erreichbar sind. Vom obigen Code Beispiel ausgehend,
müssten also example.com als auch ard.de in die csv geschrieben werden können und bloomberg.com als auch github.com würden draussen bleiben.
Die Seite der Ard ist etwas trickreich, da diese weiterhin mit http:// erreichbar ist aber auf eine andere sub-domain weiterleitet.
Wie gesagt, gerade stehe ich auf dem Schlauch und wäre sehr dankbar für eure Hilfe.
Gruß Moses
Env.:
PyCharm
Python 3.7
Win 10/ Ubuntu 16.04/ Kali Linux (muss auf verschiedenen Plattformen laufen, der Code)