【问题标题】:How to prevent 301 code from redirecting website?如何防止301代码重定向网站?
【发布时间】:2023-03-04 07:42:07
【问题描述】:

我正在尝试使用 Python 连接到网站并获取 HTTP 状态代码。正如this other question of mine 上的答案所建议的那样,google.com 等网站的 HTTP 状态代码为 301 或 302(永久移动)的原因是这些服务器正在重定向。但是,我希望能够以这样的方式连接到它们,以便从它们那里获得自然的 200(OK)。这是我当前的代码:

import httplib

conn = httplib.HTTPConnection("google.com", 80)
conn.request("GET","/")
r  = conn.getresponse()
print r.status, r.reason
conn.close()

我需要改变/添加什么来实现这一点?我听说pycurl 库可能会帮助我解决这个问题,但到目前为止,谷歌搜索并没有带来任何有用的结果。我是这个领域的新手,如果问题很琐碎,请见谅。

【问题讨论】:

标签: python http ironpython pycurl


【解决方案1】:

我假设你想要你的代码跟随 301/302s 到返回 200 的结束 url?

如果是这样,您可以尝试使用urllib,或者最好还是使用您可以使用 pip 安装的requests

urllib 和更可靠的 requests 都应该遵循 301 和 302,并为您提供返回 200 的最终页面。

可以在此处找到有关请求模块的信息: http://pypi.python.org/pypi/requests/

希望这会有所帮助。

【讨论】: