Urllib与并发 - Python

4 投票
1 回答
678 浏览
提问于 2025-04-15 21:56

我正在通过WSGI来运行一个Python脚本。这个脚本会通过urllib访问一个网络资源,计算这个资源,然后返回一个值。

问题是urllib似乎无法处理对同一个网址的多个同时请求

一旦同时请求数量达到30个,请求就会变得非常慢! :(


非常感谢任何帮助! :D

1 个回答

3

是的,urllib 在处理并发方面做得不多。每次你使用 urlopen 时,它都需要先建立连接,发送HTTP请求,然后获取响应的状态码和头信息(可能还要处理重定向)。所以虽然你可以按照自己的节奏读取响应的内容,但大部分等待请求的时间其实已经过去了。

如果你需要更高的并发性,可能就得使用一些异步网络输入输出的工具(比如 Eventlet 在它的首页上就有一个合适的例子),或者干脆让每个 urlopen 在自己的线程中运行。

撰写回答