[问题] 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