4

我有这个代码

#!/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)

如何处理错误而不收到通常的 Python 错误消息?
例如,对于不存在的域,它会打印出“未找到”。

4

2 回答 2

6

似乎grequests从 pypi (with pip) 安装不包括异常处理。但是来自 github 的版本已经实现了这个功能:

def map(requests, stream=False, size=None, exception_handler=None)

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

pip install git+https://github.com/kennethreitz/grequests.git

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

于 2015-05-19T06:12:18.330 回答
1

最新版本的 grequests 已修复此问题 - https://github.com/kennethreitz/grequests

于 2016-03-09T15:16:29.763 回答