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

Selenium抓取雅虎财经数据速度慢,能否仅用requests库实现数据提取?

解决方案

你要提取的个股实时报价和涨跌幅数据本身就包含在雅虎财经的静态页面源码中,无需启动浏览器渲染,直接用requests发送HTTP请求即可获取,运行速度相比Selenium会提升数倍。
你只需要在请求中携带模拟浏览器的User-Agent头,避开雅虎的基础反爬拦截即可,完整实现代码如下:

import requests
from bs4 import BeautifulSoup
from openpyxl import load_workbook
from openpyxl.styles import Font

# 目标页面地址
url = "https://finance.yahoo.com/quote/WRD.PA?p=WRD.PA&.tsrc=fin-srch"
# 构造请求头模拟浏览器访问
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"
}

# 发送请求获取页面内容
resp = requests.get(url, headers=headers, timeout=10)
resp.encoding = "utf-8"

# 页面解析逻辑和原有逻辑一致
soup2 = BeautifulSoup(resp.text, 'lxml')
data1 = soup2.find("span", class_="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)").text.strip()
data2 = soup2.find("span", class_="Trsdu(0.3s) Fw(500) Pstart(10px) Fz(24px) C($negativeColor)").text.strip()

# Excel写入逻辑保持不变
wb = load_workbook('output.xlsx')
ws = wb.active
fontstyle = Font(size = "16")
ws['B9'].value = f'{data1}  {data2}'
ws.cell(row=9, column=2).font = fontstyle
wb.save("output.xlsx")

注意事项

  • 如果运行时出现属性获取报错,大概率是请求被反爬拦截,更换User-Agent的取值重试即可
  • 如果后续雅虎调整了元素类名,重新在浏览器F12开发者工具中查看对应元素的类名替换即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:21:00