我有这样的代码。
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 来执行此操作。
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/