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

如何解决Python中使用pandas read_html出现404(未找到)错误的问题

解决pandas read_html访问Yahoo Finance部分股票404的问题

问题核心是Yahoo Finance的反爬机制会识别无浏览器标识的请求,read_html()默认的请求头没有携带User-Agent,导致部分股票页面被拦截返回404,而浏览器访问时自动带上了合法的User-Agent,所以能正常打开。

解决方法是先通过requests库模拟浏览器请求获取页面内容,再传给pd.read_html()处理:

import pandas as pd
import requests

# 模拟浏览器的请求头
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'
}

# 获取AVY页面内容
url = 'https://finance.yahoo.com/quote/AVY'
response = requests.get(url, headers=headers)
response.raise_for_status()  # 确保请求成功

# 用read_html解析内容
df_list = pd.read_html(response.text)
cap = df_list[1][1].iloc[0]
print(cap)

额外注意事项:

  • 可替换为自己浏览器实际的User-Agent(在浏览器开发者工具的Network面板中可查看)
  • 避免频繁批量请求,防止触发更严格的反爬限制
  • Yahoo Finance页面结构可能随时间变化,需根据实际页面调整df_list的索引位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 21:27:37