GRequests允许您使用带有Gevent的请求来轻松地进行异步HTTP请求。
安装
pip install grequests
用法
import grequests
urls = [
'http://www.heroku.com',
'http://python-tablib.org',
'http://httpbin.org',
'http://python-requests.org',
'http://fakedomain/',
'http://kennethreitz.com'
]
rs = (grequests.get(u) for u in urls)
grequests.map(rs)
输出为:
[, , , , None, ]
如果在连接请求期间发生超时或任何其他异常,可以添加一个异常处理程序,该异常处理程序将在主线程内部使用请求和异常进行调用:
import grequests
def exception_handler(request, exception):
print ("Request failed")
reqs = [
grequests.get('http://httpbin.org/delay/1', timeout=0.001),
grequests.get('http://fakedomain/'),
grequests.get('http://httpbin.org/status/500')]
print(grequests.map(reqs, exception_handler=exception_handler))
输出为:
Request failed
Request failed
[None, None, ]
对于性能的提高,可使用imap,imap返回响应的生成器。
|