python - 与 urllib2 或其他 http 库的多个(异步)连接?

标签 python asynchronous urllib2 python-2.5

我有这样的代码。

for p in range(1,1000):
    result = False
    while result is False:
        ret = urllib2.Request('http://server/?'+str(p))
        try:
            result = process(urllib2.urlopen(ret).read())
        except (urllib2.HTTPError, urllib2.URLError):
            pass
    results.append(result)

我想同时提出两三个请求来加速这个过程。我可以为此使用 urllib2 吗?如何使用?如果不是,我应该使用哪个其他库?谢谢。

最佳答案

您可以使用异步 IO 来执行此操作。

requests + gevent = grequests

GRequests 允许您将 Requests 与 Gevent 结合使用,轻松发出异步 HTTP 请求。

import grequests

urls = [
    'http://www.heroku.com',
    'http://tablib.org',
    'http://httpbin.org',
    'http://python-requests.org',
    'http://kennethreitz.com'
]

rs = (grequests.get(u) for u in urls)
grequests.map(rs)

关于python - 与 urllib2 或其他 http 库的多个(异步)连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4119680/

相关文章:

python - `Pool.*_async` 功能从未准备好

python - 将字符串元组转换为元组

javascript - 异步生成器和 Observable 之间有什么区别?

javascript - 将状态传递给 preact 组件

被 urllib2 阻止的 Python 进程

python - Python 2.5 中的 urllib 或 urllib2 是否支持 https?

python - HTTP异常 : Deadline exceeded while waiting for HTTP response from URL

python - 如何让 vim 在调用函数时只在括号后的下一行插入 4 个空格(一个缩进级别)?

python - 按数字组合 Pandas 数据帧

javascript - 在 DRF 中使用与模型相同的日期/时间格式。DateTimeField