Python Requests请求ESPN RSS Feed返回403错误的原因排查
问题原因及解决方法
核心原因:ESPN的反爬机制识别出你的请求来自非浏览器客户端。默认情况下,
requests.get()发送的请求头里的User-Agent是python-requests/x.x.x,网站会判定这是爬虫请求,直接返回403禁止访问;而浏览器访问时会携带专属的浏览器标识UA,网站会正常响应内容。解决方法:给请求添加模拟浏览器的
User-Agent请求头,示例代码如下:
import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' } response = requests.get('https://www.espn.com/espn/rss/news', headers=headers) print(response.status_code) # 正常情况下会返回200
- 额外提示:如果添加UA后仍无法访问,可以复制浏览器访问该链接时的完整请求头(比如Accept、Accept-Language等)到
headers字典中,进一步模拟浏览器环境。另外不需要登录,因为你未登录的浏览器也能访问,说明该接口本身不需要权限,只是反爬拦截。
内容的提问来源于stack exchange,提问作者kaysuez
相关产品推荐
相关产品推荐

