【问题标题】:Python request.get(URL) does not lead to a redirect although there's a redirect when trying in the browserPython request.get(URL) 不会导致重定向,尽管在浏览器中尝试时有重定向
【发布时间】:2022-01-02 16:24:33
【问题描述】:

有一个名为https://coolors.co 的网站,我想获取它们以编程方式生成的调色板。在浏览器中,我只需单击“启动生成器!”按钮。按钮附加到的链接是https://coolors.co/generate。如果我在浏览器中访问该网址,则会生成调色板。请注意,网址已更改为 https://coolors.co/092327-0b5351-00a9a5-4e8098-90c2e7(这是一个示例 - 网址的最后一部分只是十六进制代码)。显然有重定向。

但是当我在 Python 中使用 get 请求执行此操作时,我不会被重定向,而是停留在这个中间站点上。当我查看 r.text 时,它告诉我“此域不存在并且正在出售”。

我该如何解决这个问题?如何启用重定向?

代码如下:

url = 'https://coolors.co/generate'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'}
r = requests.get(url, headers=headers)

谢谢!

【问题讨论】:

  • 我没有收到你提到的消息This domain doesn't exist and is for sale

标签: python python-requests html-parsing


【解决方案1】:

本网站不使用 HTTP 重定向。

它可能使用 Javascript 形式的重定向,例如更改 window.location.href,请求不是浏览器,因此它不会在您请求的页面中执行 javascript,因此没有重定向。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-01
  • 2013-09-24
  • 1970-01-01
  • 2016-03-27
  • 2012-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多