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

如何从指定网页抓取历史数据图表?请求技术实现指导

抓取历史数据图表的操作流程与数据定位方案

一、网页(Quantalys基金历史页)数据抓取

1. 先定位数据来源

打开浏览器F12开发者工具,切到Network标签页刷新页面:

  • 优先找XHR/fetch类型的请求,这类金融网站大概率会用API返回JSON格式的历史数据,直接抓接口比爬HTML省心多了。
  • 如果数据是硬嵌在HTML里的,切到Elements标签页,用Ctrl+F搜图表里的数值,找到对应的DOM节点(比如带特定class的表格、带data属性的div)。

2. 具体抓取方法

非技术用户:用浏览器插件快速导出

装个TableCapture之类的插件,直接识别页面里的表格,一键导出成CSV/Excel——如果图表是基于表格生成的,这方法最快。

技术用户:写脚本抓取

  • 抓API接口:用Python的requests库调用找到的API,记得带上请求头(User-Agent和Cookie,网站可能要验证登录状态,Cookie从浏览器开发者工具里复制)。示例代码:
import requests
import json

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',
    'Cookie': '替换成你浏览器里的网站Cookie'
}
api_url = '替换成找到的历史数据API地址'
resp = requests.get(api_url, headers=headers)
data = resp.json()
# 保存数据
with open('fund_history.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, indent=2)
  • 解析HTML:如果没找到API,用BeautifulSoup扒页面里的表格数据:
from bs4 import BeautifulSoup
import requests

url = 'https://www.quantalys.com/Fonds/Historique/19801'
headers = {'User-Agent': '你的浏览器UA字符串'}
resp = requests.get(url, headers=headers)
soup = BeautifulSoup(resp.text, 'html.parser')
# 定位表格,比如找class包含historical的表格
table = soup.find('table', class_=lambda c: c and 'historical' in c)
if table:
    rows = table.find_all('tr')
    for row in rows:
        cols = [col.text.strip() for col in row.find_all('td')]
        print(cols)

3. 注意点

  • 网站可能需要登录才能看全数据,先手动登一遍,把Cookie复制到请求头里。
  • 别薅太狠,控制请求频率,不然IP会被封。

二、图片中图表的数据提取

1. 工具选择

  • 纯文本类图表:用OCR工具,比如Windows截图后右键“提取文本”,或者Tesseract本地OCR。
  • 折线/柱状图:用WebPlotDigitizer,专门提取图表数据的工具,精度比OCR高。

2. WebPlotDigitizer操作步骤

  1. 打开工具,上传目标图片。
  2. 选择对应的图表类型(比如折线图),手动设置坐标轴的刻度值(对照图片上的刻度输入)。
  3. 逐个点击图表上的数据点,工具会自动记录坐标对应的数值。
  4. 导出数据为CSV或Excel文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:43:24