Ich bin auf der Suche nach Daten von einer großen Anzahl von Webseiten mit Python (> 10k) zu analysieren, und ich finde, dass die Funktion, die ich geschrieben habe, oft eine Zeitüberschreitung auftritt Fehler alle 500 Schleifen. Ich habe versucht, dies mit einem Versuch zu beheben - außer Codeblock, aber ich möchte die Funktion verbessern, so wird es versuchen, die URL vier oder fünf Mal zu öffnen, bevor Sie den Fehler zurückgeben. Gibt es eine elegante Möglichkeit, dies zu tun?Erneut versuchen, URL mit Urllib in Python bei Timeout zu öffnen
Mein Code unten:
def url_open(url):
from urllib.request import Request, urlopen
req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
try:
s = urlopen(req,timeout=50).read()
except urllib.request.HTTPError as e:
if e.code == 404:
print(str(e))
else:
print(str(e))
s=urlopen(req,timeout=50).read()
raise
return BeautifulSoup(s, "lxml")
Mögliches Duplikat von [Wie versucht man, urlib2.request erneut zu versuchen, wenn es fehlschlägt?] (Http://stackoverflow.com/questions/9446387/how-to-retry-urllib2-request-when-fails) – phss