2017-02-15 54 views
0

所以,我正在使用urllib2,並且它在特定頁面上一直凍結。即使Ctrl-C也不會取消操作。它不會拋出任何錯誤(我捕捉所有的東西),我無法弄清楚如何打破它。是否有urllib2超時選項,默認爲永遠不會?Python urllib2 - 當連接暫時死機時凍結

這裏的程序:

 
req = urllib2.Request(url,headers={'User-Agent':'...<chrome's user agent string>...'}) 
page = urllib2.urlopen(req) 
// p.s. I'm not installing any openers 

然後,如果互聯網獲得通過第二行(下載它)中途切斷,即使恢復連接,這完全凍結計劃。

這裏的響應頭我在瀏覽器(Chrome),從同一個頁面得到:

 
HTTP/1.1 200 OK 
Date: Wed, 15 Feb 2017 18:12:12 GMT 
Content-Type: application/rss+xml; charset=UTF-8 
Content-Length: 247377 
Connection: keep-alive 
ETag: "00e0dd2d7cab7cffeca0b46775e1be7e" 
X-Robots-Tag: noindex, follow 
Link: ; rel="https://api.w.org/" 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Cache-Control: max-age=600, private, must-revalidate 
Expires: Wed, 15 Feb 2017 18:12:07 GMT 
X-Cacheable: NO:Not Cacheable 
Accept-Ranges: bytes 
X-Served-From-Cache: Yes 
Server: cloudflare-nginx 
CF-RAY: 331ab9e1443656d5-IAD 

附:該網址是一個大的WordPress饋送,根據響應,它顯示爲壓縮。

回答

1

根據docs,默認超時的確沒有超時。您可以在調用urlopen時指定超時。 :)

page = urllib2.urlopen(req, timeout=30) 
+0

甜!工作很棒!謝謝 :) – Codesmith

相關問題