1

我正在尝试使用线程打开多个页面。当我使用单个线程时,一切正常,但是当使用两个或更多线程时,我收到超时响应。我的代码:

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
page = opener.open(url).read()

难道是我需要指定等待页面打开的超时时间吗?

4

1 回答 1

1

尝试在每个线程中使用单独的开瓶器。文档中的示例:

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_openeropener对象在所有线程之间共享,这可能会导致并发问题(如您的情况)。

于 2013-07-15T10:20:53.437 回答