3
我在python寫了一個爬蟲基於某些給定URL的網站上下載一些網頁。我注意到偶爾我的程序掛在這行「conn.getresponse()」。沒有例外被拋出,程序只是在那裏永遠等待。避免掛在conn.getresponse()(httplib.HTTPConnection)
conn = httplib.HTTPConnection(component.netloc)
conn.request("GET", component.path + "?" + component.query)
resp = conn.getresponse() #hang here
我讀的API文檔和它說,(以添加超時):
conn = httplib.HTTPConnection(component.netloc, timeout=10)
然而,這並不讓我的「重試」的連接。超時後重試抓取的最佳做法是什麼?
例如,我想以下解決方案:
trials = 3
while trials > 0:
try:
... code here ...
except:
trials -= 1
上午我在正確的方向?
有時碰巧的是,Python庫解釋一些頭不同於Web瀏覽器(如發生在[這個問題](http://stackoverflow.com/q/8527862/183066))。因此,爲了確保,我認爲你可以嘗試在網絡瀏覽器中打開相同的URL。 – jcollado 2011-12-20 06:55:44