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

如何用R爬取Amcharts交互式数据?泛欧交易所数据提取求助

问题描述

尝试从Euronext的股票页面获取标的代码为FR0004040608的数据,但页面数据以Amcharts 1.1交互式图表形式展示,无法找到对应的GET/POST请求参数,推测网站采用了其他数据传输机制。

使用R的httr、rvest等工具尝试爬取,代码及结果如下:

library(httr)
library(rvest)
library(XML)
url <- 'https://live.euronext.com/en/product/equities/FR0004040608-XPAR'

page <- read_html(url)

class(page)
# "xml_document" "xml_node" 

xml_child(page, 2)
# {html_node}
# <body class="layout-no-sidebars path-product">
# [1] <a href="#main-content" class="visually-hidden focusable skip-link">
   ...
# [2] <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-T ...
# ....
# [20] <script src="/sites/default/files/js/optimized/js_gcfptZrWxdKuaT414lrcjk ...


> page %>% html_nodes(xpath = '//*[@id="price-chart"]')%>% html_text()
# character(0)

page %>% html_nodes("script")%>% html_text()

page %>% html_nodes("noscript")%>% html_text()
# [1] "form.antibot * :not(.antibot-message) { display: none !important; }"
# [2] ""  

开发者工具观察到的现象:

  • 点击图表「Max」按钮后界面展示完整历史数据
  • 常规请求响应中不包含图表数据
  • 数据最终渲染在SVG元素中

技术解决方案思路

1. 追踪动态数据请求

这类交互式图表的数据通常通过异步AJAX请求加载,而非直接嵌入页面HTML:

  • 打开浏览器开发者工具(F12),切换到「网络」标签,过滤「XHR/Fetch」类型请求
  • 刷新页面或点击图表「Max」按钮,观察新增请求,重点查找含price、history、chart等关键词的接口
  • 复制请求的Headers(尤其是Authorization、Cookie等验证字段)和参数,用R的httr::GET()/POST()模拟请求

2. 提取页面内嵌的JSON数据

部分网站会将图表数据以JSON形式嵌入页面<script>标签:

  • 用page %>% html_nodes("script") %>% html_text()遍历所有脚本内容
  • 用正则表达式匹配含chartData、priceHistory等关键词的JSON片段,提取后用jsonlite::fromJSON()解析为R数据框

3. 解析SVG中的渲染数据

如果数据直接渲染在SVG中:

  • 定位SVG节点:svg_node <- page %>% html_nodes("#price-chart svg")
  • 提取SVG的<path>(路径)或<text>(文本)元素,这些元素的d属性或文本内容可能包含编码后的坐标数据
  • 结合Amcharts的坐标映射规则,将像素坐标转换为实际的价格/时间数据

4. 使用无头浏览器模拟渲染

若上述方法无效,说明数据通过JavaScript动态生成,需用无头浏览器执行渲染:

  • 在R中可使用RSelenium或playwright包,模拟浏览器加载页面并完成渲染
  • 等待图表加载完毕后,直接从DOM中提取数据,或调用Amcharts的API(如chart.series[0].data)获取原始数据

5. 备选方案:官方API

Euronext提供官方数据接口(Euronext Data Feed),可申请API密钥后直接获取结构化数据,避免爬虫的不稳定问题。


内容的提问来源于stack exchange,提问作者Koffi Frederic Sessie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:55:09