python - 强制我的 python URL 请求通过重定向
问题描述
我试图从中抓取的 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
解决方案
在将 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)
推荐阅读
- mongodb - 旧坐标对的地理空间查询
- regex - 正则表达式以不同的顺序匹配多个单词
- harmon.ie - Harmon.ie 侧边栏打开但空白
- python - 序列化程序中的 ArrayField
- list - 拆分空字符串时 Dart 列表计数显示一个
- reactjs - 如何将模式应用于材质 ui 输入?
- javascript - Javascript instanceof 运算符混淆
- hash - 如何让 ldap 评估明文密码与 DES 存储密码
- swift - Change UITabBarView tabs order programmatically
- mysql - mysql - How to perform joining of of two junctional tables in case where one of them has foreign key of another?