1

我知道如何requests很好地使用,但由于某种原因,我没有成功让代理工作。我提出以下要求:

r = requests.get('http://whatismyip.com', proxies={'http': 'http://148.236.5.92:8080'})

我得到以下信息:

requests.exceptions.ConnectionError: [Errno 10060] A connection attempt failed b
ecause the connected party did not properly respond after a period of time, or e
stablished connection failed because connected host has failed to respond

然而,我知道代理可以工作,因为使用节点:

request.get({uri: 'http://www.whatismyip.com', proxy: 'http://148.236.5.92:8080'},
    function (err, response, body) {var $ = cheerio.load(body); console.log($('#greenip').text());});

我得到以下(正确)响应:

148.236.5.92

此外,当我以不同的方式尝试requests请求时(例如,没有http://在代理前面写入),它只会允许请求正常通过,而无需通过代理或返回错误。

我在 Python 中做错了什么?

4

2 回答 2

2

这是一个已知问题:https ://github.com/kennethreitz/requests/issues/1074

我不确定为什么要花这么长时间才能修复。不过,要回答您的问题,您没有做错任何事。

于 2013-01-16T00:12:45.377 回答
1

正如 sigmavirus24 所说,这是一个已知问题,已修复,但尚未打包成新版本并推送到 PyPI。

所以,如果你急需这个,你可以从 git repo 的 master 升级。

如果您正在使用pip,这很简单。而不是这个:

pip install -U requests

做这个:

pip install -U git+https://github.com/kennethreitz/requests

如果您不使用pip,则可能必须显式地从本地副本中显式地git clone存储 repo,然后easy_install .或或其他任何内容。python setup.py

于 2013-01-16T06:43:28.113 回答