【问题标题】:Force my python URL request past redirection强制我的 python URL 请求通过重定向
【发布时间】:2019-08-19 18:57:53
【问题描述】:

我试图从中抓取的 URL 是一个实际的 URL:

https://www.lineups.com/nfl/player-stats/ezekiel-elliott

但是,如果我尝试请求此站点,我将被 (301) 重定向。如何强制访问此 URL?

我已经尝试过转:allow_redirects = False

url = "https://www.lineups.com/nfl/player-stats/Matt-Ryan"

r = requests.get(url, allow_redirects=False)

print(r.status_code, r.headers['Location'])  # 301 /nfl/player-stats
print(r.url)  # https://www.lineups.com/nfl/player-stats/Matt-Ryan


soup = BeautifulSoup(r.text, 'lxml')
print(soup)  

永久移动。重定向到 /nfl/player-stats

【问题讨论】:

  • 如果你想允许重定向你可以设置allow_redirects=True

标签: python redirect web-scraping python-requests


【解决方案1】:

在将 Session 与 User-Agent 一起使用时,我收到 200 个响应和正确的内容。下面的代码有效。

import requests

session = requests.Session()

session.headers.update({'User-Agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Firefox/68.0"})

resp = session.get("https://www.lineups.com/nfl/player-stats/ezekiel-elliott")

print(resp.status_code)

print(resp.text)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-23
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    相关资源
    最近更新 更多