【问题标题】:How to follow all redirects?如何跟踪所有重定向?
【发布时间】:2021-06-16 21:39:59
【问题描述】:

我想通过所有重定向“跟踪”一个 URL 并获取目标 URL。这就是我正在做的:

import requests

link = 'http://google.com'

try:
  reply = requests.head(link, allow_redirects=True)
except requests.exceptions.MissingSchema as exception:
  reply = 'invalid url'
except requests.ConnectionError as exception:
  reply = 'invalid destination'

print(reply)

当我在浏览器中打开它时,我得到两个重定向:

但是,requests 只给了我一个重定向并返回“http://www.google.com”。如何告诉请求也遵循 307 重定向?

【问题讨论】:

    标签: python python-3.x python-requests


    【解决方案1】:

    请求会很乐意跟随重定向,但如果您不使用浏览器,Google 不会发送重定向。您可以通过更改用户代理来解决此问题:

    r = requests.get('http://google.com', headers={"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0"})
    print(r.url)
    # Output: https://www.google.com/?gws_rd=ssl as expected
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      • 2013-04-15
      • 2021-06-13
      • 1970-01-01
      • 2014-04-13
      • 1970-01-01
      • 2020-01-03
      相关资源
      最近更新 更多