[問題] HTTPResponse.read()設定timeout

作者: walelile (wakaka)   2014-10-29 14:27:51
我使用python3.2 urllib.request中的urlopen來抓網頁
有些頁面可以成功傳回header的資訊( web = urlopen(url) )
但是我要取得body的時後卻會timeout( HTTPResponse.read() )
原本我以為只會在urlopen中透過socket來取得資料
這個狀況看起來是read的時候還會再透過網路抓一次資料
會這樣想是因為我斷掉網路連結就無法正常HTTPResponse.read()
不曉得這個理解是否正確?
假如這個理解沒錯,請問這樣分兩次網路存取vs一次下載全部資料
在流量及server端負載是否有差異?(一定會下載整個頁面資料)
另外,urlopen可以完成, read()卻會timeout除了檔案過大是否還有其他可能?
目前最大的問題是無法在HTTPResponse.read()設定timeout
我也無法透過socket.setdefaulttimeout來改變timeout的時間
請問該如何解決這個問題?
謝謝
作者: uranusjr (←這人是超級笨蛋)   2014-10-29 14:49:00
HTTP request 和 response 有 overhead, 所以會差一點點但實務上流量差異幾乎可以忽略(通常不到 1K)會 timeout 當然是有其他可能, 但實際還是要看狀況

Links booklink

Contact Us: admin [ a t ] ucptt.com