2016-06-03 12 views
0

Ich habe eine Linie in Python-Code, der liest:Wie auf Fehler überprüfen urllib.request

req = urllib.request.urlopen(path + "robots.txt", data=None) 

Aber das scheint erroring geführt werden, wenn die website.com/robots.txt existiert nicht. Wie kann ich eine Fehlerüberprüfungsbedingung hinzufügen, die nur req auf leer setzt, wenn dies nicht funktioniert?

Antwort

1

Dies ist ein guter Anwendungsfall für einen try - except Block.

from urllib.request import urlopen 
from urllib.error import URLError, HTTPError 

try: 
    req = urlopen(path + "robots.txt", data=None) 
except HTTPError as e: 
    # do something 
    print('Error code: ', e.code) 
except URLError as e: 
    # do something (set req to blank) 
    print('Reason: ', e.reason) 

Ich bin mir nicht sicher, was Sie durch Leer bedeuten, aber man kann es auf was auch immer Sie es innerhalb der Blöcke außer wollen, je nachdem, was der Fehler ist. In Ihrem Fall glaube ich, dass Sie einen URLError bekommen, in diesem Fall können Sie etwas wie req = None (oder was auch immer Sie möchten) tun.