【发布时间】:2020-07-14 09:56:13
【问题描述】:
很简单的问题。当我在任何浏览器中访问我的网站时,它都会重定向。当我在完全相同的 URL 和协议上执行 requests.get(my_url) 时,我得到 200 响应。为什么?不管我将allow_redirects 设置为True 还是False,我仍然会得到相同的行为。我尝试设置一个标头,以便请求伪装成 Firefox,我仍然得到相同的行为。
我怎样才能让 requests.get 给我一个浏览器在完全相同的 URL 上获得的重定向?
#!/usr/bin/env/python
import requests
result = requests.get("https://bgjkfgbjfgghbjdfbhdgfjkh.fake")
print(result.status_code)
上面打印“200”。
【问题讨论】:
-
没有真实网址很难说...
-
该网站未公开,因此对您没有帮助。它与我提供的 URL 相同,只是使用了不同的(内部)域名。
-
是的,但 URL(和用户代理)不是请求中发送的唯一内容。我建议使用 Fiddler(你必须让 Python 信任它的证书)作为中间人代理来比较浏览器和 Python 发送的确切请求,然后手动处理这些差异,直到你确定导致它的原因.我会为你做的,这就是我要求提供 URL 的原因,但如果它是内部的,那么你必须自己做。
-
响应内容是和预期的一样还是完全不同?
-
@JeffWhite 然后给定您的 cmets(“result.is_redirect 为假,result.next 为空,result.history 为空”),它可能是 javascript 重定向或对某些 cookie 的测试。