0
Python(> 10k)を使用して多数のWebページからデータを解析しようとしていますが、これを行うために書いた関数がしばしばタイムアウトになります500ループごとにエラーが発生します。私はtry - except codeブロックでこれを修正しようとしましたが、エラーを返す前にurlを4〜5回開くように関数を改良したいと思います。これを行うエレガントな方法はありますか?タイムアウト時にurllibでpythonでurlを開くのを再試行します。
以下の私のコード:
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")
[失敗した場合にurllib2.requestを再試行する方法]の複製がありますか?(http://stackoverflow.com/questions/9446387/how-to-retry-urllib2-request-when-fails) – phss