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

为什么抓取雅虎财经数据时仅添加请求头才能获取更新股价?

为什么添加User-Agent请求头后才能拿到雅虎财经实时股价

核心原因

这个现象本质是雅虎财经服务端的反爬虫拦截策略导致的,底层逻辑如下:

  • HTTP请求头中的User-Agent字段,作用是标识请求发起方的客户端类型、操作系统、浏览器版本等特征信息。你直接用requests.get()发起请求时,requests会自动带上默认的User-Agent,取值为python-requests/[当前安装的requests版本号],特征非常明确,服务端可以很轻松识别出这是爬虫程序发起的请求,而非普通用户用浏览器访问。
  • 雅虎财经对识别到的爬虫请求,不会返回实时生成的最新页面,而是直接返回缓存了数小时甚至更久的静态页面快照,用来降低服务器压力,减少爬虫占用的带宽资源,所以你拿到的股价一直是固定不变的旧数据。
  • 当你添加了模拟火狐浏览器的User-Agent后,请求特征和普通用户用浏览器访问完全一致,服务端就会判定为正常用户请求,返回包含实时最新股价的动态页面,你就可以拿到实时更新的价格了。

额外说明

除了User-Agent之外,部分情况下雅虎财经还会校验请求头中的Cookie、Referer等字段,如果后续出现再次拿不到实时数据的情况,可以尝试把浏览器访问时的所有请求头都复制到代码中模拟即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:24:04