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

标签 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 获得了代理服务器,看起来它们不是真正的代理服务器,它们是一些像浏览器一样工作的网站。

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

最佳答案

看起来代理服务器有问题,我认为它无法处理 http://api.mongodb.org/python 抛出的 302/p>

$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

关于Python 请求模块不适用于带路径的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33505224/

相关文章:

python - Git 和共享 python 库

nginx - 使用 proxy_pass 配置 Nginx 的两个位置

python - 如何使用 Python Requests 登录网站,存储 cookie,然后访问网站上的另一个页面?

python - 请求中的 URL 超出了最大重试次数

python - 无法使用 Postman 生成的 Python 代码发帖

python - 计时器脚本中的 Gtk 标签未更新

Python3关于字节变量的正则表达式

python - 如何使用 pandas 将 Top N 之外的 "remaining"结果分组为 "Others"

php - CURLOPT_CONNECTTIMEOUT 不工作

java - 通过代理服务器连接到 Azure 存储帐户 Microsoft Azure Storage SDK for Java