如何处理GRequests中的错误?

pau*_*uts 3 python python-requests grequests

我有这个代码

#!/usr/bin/python

import grequests

urls = [
'http://google.com',
'http://doesnotexists.tld'
]


def do_something(response, **kwargs):
        print response.text

async_list = []

for u in urls:
    action_item = grequests.get(u, timeout=10, hooks = {'response' : do_something})
    async_list.append(action_item)

grequests.map(async_list,size=10)
Run Code Online (Sandbox Code Playgroud)

如何在不获取常见Python错误消息的情况下处理错误?
例如,对于不存在的域,它打印出"未找到".

aro*_*aal 6

似乎grequests从pypi安装(带有pip)不包括异常处理.但是github的版本实现了这个功能:

def map(requests, stream=False, size=None, exception_handler=None)
Run Code Online (Sandbox Code Playgroud)

所以你应该克隆grequests或从github下载grequests.py并使用该版本.您可以使用pip直接安装该版本:

pip install git+https://github.com/kennethreitz/grequests.git
Run Code Online (Sandbox Code Playgroud)

如果您正在寻找异常处理示例,您可以查看存储库中的test.py. https://github.com/kennethreitz/grequests/blob/master/tests.py