Python请求模块不适用于带路径的url

时间:2015-11-03 17:15:06

标签: python proxy python-requests

我的Python版本是2.7,并在Ubuntu机器上运行。我试图使用请求通过代理服务器获取一些页面,它不适用于具有完整路径的网址。这是一个显示此问题的示例,

In [30]: proxies
Out[30]: {'http': 'http://webproxyserver.info:80'}

In [31]: url = 'http://api.mongodb.org/'

In [32]: r = requests.get(url,proxies = proxies)

In [33]: r.status_code
Out[33]: 200

In [34]: url_1 = 'http://api.mongodb.org/python'

In [35]: r = requests.get(url_1,proxies = proxies)

In [36]: r.status_code
Out[36]: 404

我不确定这是否是代理问题?或者我的Python代码有问题。它看起来像主域的代理唯一字(没有任何路径)。

感谢您提供任何信息。

---于05/11更新 我刚刚意识到代理服务器根本不起作用。我从proxy4free获得了代理服务器,看起来它们不是真正的代理服务器,它们是一些像浏览器一样工作的网站。

我尝试过另一个真正的代理服务器,代码都很好执行。感谢您的所有信息。

2 个答案:

答案 0 :(得分:1)

看起来代理服务器出了问题,我认为它无法处理302

引发的http://api.mongodb.org/python
$export http_proxy=                                                      
$curl -s -w '%{http_code}\n' 'http://api.mongodb.org/' -o /dev/null      
200
$curl -s -w '%{http_code}\n' 'http://api.mongodb.org/python' -o /dev/null
302
$export http_proxy='http://webproxyserver.info:80'                       
$curl -s -w '%{http_code}\n' 'http://api.mongodb.org/' -o /dev/null      
200
$curl -s -w '%{http_code}\n' 'http://api.mongodb.org/python' -o /dev/null
404

答案 1 :(得分:0)

尽管名称不同,但webproxyserver.info不会在该位置运行http代理。如果您检查r.text,您会发现代理不适用于任何地址,无论是否有路径。