You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用requests.get访问有效Yahoo Finance URL返回404错误的咨询

问题解决:requests.get访问雅虎财经AAPL分析页返回404

问题现象

  • 直接访问https://finance.yahoo.com/quote/AAPL/analysis?p=AAPL为有效链接,但使用requests.get请求时返回<Response [404]>,状态码404,r.ok为False,响应内容为空。
  • 同域名下的https://finance.yahoo.com/quote/AMG?p=AMG用相同方式请求,可正常返回200状态码,r.ok为True。

原因分析

雅虎财经针对不同页面设置了差异化反爬策略,AAPL分析页的反爬校验更严格。requests库默认请求头(尤其是User-Agent字段)会被服务器识别为非浏览器爬虫请求,从而返回404错误。

解决方案

在请求中添加模拟浏览器的请求头,让服务器判定请求来自合法浏览器,核心是设置User-Agent字段。

修改后的代码示例

import requests

url = 'https://finance.yahoo.com/quote/AAPL/analysis?p=AAPL'
# 模拟Chrome浏览器的User-Agent
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
r = requests.get(url, headers=headers)
print(r.status_code)  # 预期返回200
print(r.ok)  # 预期返回True

补充优化

如果仅添加User-Agent仍有问题,可补充更多浏览器常用请求头,进一步模拟真实请求:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5'
}

内容的提问来源于stack exchange,提问作者urbanscribe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 15:15:59