Urllib和并发性-Python

Urllib和并发性-Python,python,http,concurrency,wsgi,urllib,Python,Http,Concurrency,Wsgi,Urllib,我正在通过WSGI提供python脚本。脚本通过urllib访问web资源,计算资源,然后返回一个值 问题是,urllib似乎无法处理对精确URL的许多并发请求 一旦请求达到30个并发请求,请求就会慢到爬行速度( 非常感谢您的帮助!:D是的,urllib没有多少并发性。每次您urlopen时,它都必须设置连接,发送HTTP请求,并从响应中获取状态代码和头(可能还需要从那里处理重定向)。因此,尽管您可以按照自己的速度阅读响应的正文,但请求的大部分等待时间都已经发生了 如果您需要更多的并发性,您可

我正在通过WSGI提供python脚本。脚本通过urllib访问web资源,计算资源,然后返回一个值

问题是,urllib似乎无法处理对精确URL的许多并发请求

一旦请求达到30个并发请求,请求就会慢到爬行速度(



非常感谢您的帮助!:D

是的,
urllib
没有多少并发性。每次您
urlopen
时,它都必须设置连接,发送HTTP请求,并从响应中获取状态代码和头(可能还需要从那里处理重定向)。因此,尽管您可以按照自己的速度阅读响应的正文,但请求的大部分等待时间都已经发生了


如果您需要更多的并发性,您可能需要使用某种异步网络IO工具(例如,在其首页上似乎有一个合适的示例),或者只在自己的线程中启动每个
urlopen

您确定urllib是瓶颈,而不是一些环境约束,例如通过代理发送请求?GIL即使在使用单独的线程时也会阻止真正的并发(尽管它看起来像并发)。需要单独的进程才能实现真正的并发性(eventlet就是这样做的)。