我正在尝试使用线程打开多个页面。当我使用单个线程时,一切正常,但是当使用两个或更多线程时,我收到超时响应。我的代码:
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
page = opener.open(url).read()
难道是我需要指定等待页面打开的超时时间吗?
我正在尝试使用线程打开多个页面。当我使用单个线程时,一切正常,但是当使用两个或更多线程时,我收到超时响应。我的代码:
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
page = opener.open(url).read()
难道是我需要指定等待页面打开的超时时间吗?
尝试在每个线程中使用单独的开瓶器。文档中的示例:
proxy_handler = urllib2.ProxyHandler({'http': 'http://www.example.com:3128/'})
opener = urllib2.build_opener(proxy_handler)
# This time, rather than install the OpenerDirector, we use it directly:
opener.open('http://www.example.com/login.html')
问题urllib2.install_opener
是opener
对象在所有线程之间共享,这可能会导致并发问题(如您的情况)。