Vorweg: Ich hoffe diese Frage wird hier keinen nerven oder stören weil es zu basic ist aber ich häng hier gerade etwas fest
Zu mir: Ich bin kein Programmierer, neben einigen Grundlagen im Bereich PHP habe ich eigentlich immer nur an HTML und CSS gearbeitet. Ich hoffe aber in Zukunft etwas mehr Richtung Python zu schwenken da ich an sich von der Sprache Überzeugt bin und denke, dass diese mir einiges an Arbeit abnehmen kann wenn ich erstmal den Durchblick habe.
Zur Fragestellung: Ich will unsere 600 Firmendomains überprüfen, es gibt eine Liste in der alle Domains eingetragen sind jedoch sind ~5-10% dieser momentan nicht zu erreichen. Jetzt würde ich gerne diese Liste durch Python jagen und schauen was für Statuscodes mir ausgegben werden. Also 200 -> Found oder 302, 301 oder eben 404.
Ein erster Ansatz für das Ganze sieht bei mir so aus (Funktioniert aber nicht):
Python 2.7.2
Code: Alles auswählen
import httplib
domainliste = open('domainliste.txt', 'r')
for domain in domainliste:
conn = httplib.HTTPConnection(domain)
conn.request("HEAD", "/")
r1 = conn.getresponse()
print domain, r1.status, r1.reason
conn.close()
Code: Alles auswählen
Traceback (most recent call last):
File "C:\Python27\MyStuff\domainstatuscheck.py", line 5, in <module>
conn.request("HEAD", "/")
File "C:\Python27\lib\httplib.py", line 955, in request
self._send_request(method, url, body, headers)
File "C:\Python27\lib\httplib.py", line 989, in _send_request
self.endheaders(body)
File "C:\Python27\lib\httplib.py", line 951, in endheaders
self._send_output(message_body)
File "C:\Python27\lib\httplib.py", line 811, in _send_output
self.send(msg)
File "C:\Python27\lib\httplib.py", line 773, in send
self.connect()
File "C:\Python27\lib\httplib.py", line 754, in connect
self.timeout, self.source_address)
File "C:\Python27\lib\socket.py", line 553, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno 11004] getaddrinfo failed
Wenn ich mir jetzt in der Python Shell, nach der Fehlermeldung, die Variable domain ausgeben lasse sieht diese wie folgt aus '["www.domain1.de",\n' also denke ich, dass es etwas mit dem Zeilenumbruch durch \n zu tun hat.
Könnt ihr mir Stichwörter liefern wonach ich suchen kann um das Problem zu lösen oder einen Hinweis wie ich das Programm modifizieren kann?
Ich kann natürlich hergehen und das Programm so aufbauen:
Code: Alles auswählen
import httplib
domains = ["www.domain1.de", "www.domain2.de", "www.domain3.de", "etc..."]
for i in domains:
conn = httplib.HTTPConnection(i)
conn.request("HEAD", '/')
r1 = conn.getresponse()
print i, r1.status, r1.reason
conn.close()
Viele Grüße,
Volli