如何用R爬取网页中图表形式的每日开盘/最高/最低/收盘价数据?
爬取Avanza图表类股票数据的方法
这类图表展示的行情数据,一般不会直接嵌入在网页HTML里,而是通过后端API异步加载的,所以用rvest直接解析静态HTML拿不到数据。你可以按下面的步骤来获取:
找到数据接口
打开浏览器开发者工具(按F12),切换到「Network」标签页,刷新目标页面后,过滤「XHR」类型的请求。在请求列表里找包含history或类似关键词的接口,就能找到返回行情数据的JSON接口。比如针对这个股票,对应的日线数据接口是https://www.avanza.se/_api/price-chart/history/476915?resolution=1D。用R请求API并解析数据
用httr发送请求,jsonlite解析返回的JSON数据,整理成你需要的格式:library(httr) library(jsonlite) library(dplyr) # 请求日线数据,resolution参数可选1D(日)/1W(周)/1M(月) api_url <- "https://www.avanza.se/_api/price-chart/history/476915?resolution=1D" response <- GET(api_url) raw_data <- fromJSON(content(response, "text")) # 提取并整理所需字段 price_df <- data.frame( 日期 = as.POSIXct(raw_data$t, origin = "1970-01-01"), 开盘价 = raw_data$o, 最高价 = raw_data$h, 最低价 = raw_data$l, 收盘价 = raw_data$c ) # 查看前几条数据 head(price_df)注意事项
- 不要短时间内频繁发送请求,避免触发网站的反爬机制导致IP被封
- 网站的API接口可能会随时调整,若后续无法获取数据,需要重新在开发者工具里查找新的接口
- 请遵守网站的使用条款和
robots.txt规则
内容的提问来源于stack exchange,提问作者HelloSanta
相关产品推荐
相关产品推荐

