如何在R中获取NASDAQ API的JSON数据并转为DataFrame?
R获取NASDAQ股息日历JSON数据解决方案
步骤1:用httr构造带合规请求头的请求
NASDAQ的API会验证请求来源,直接用jsonlite请求会被拦截,需要模拟浏览器请求头:
library(httr) library(jsonlite) # 设置模拟浏览器的请求头 request_headers <- add_headers( `User-Agent` = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36", `Accept` = "application/json, text/plain, */*", `Accept-Language` = "en-US,en;q=0.9" ) # 发送GET请求 resp <- GET("https://api.nasdaq.com/api/calendar/dividends?date=2023-10-09", request_headers) # 检查请求是否成功,失败则抛出错误 stop_for_status(resp)
步骤2:解析JSON并转为DataFrame
请求成功后提取响应内容,解析并转换为DataFrame:
# 提取JSON文本内容 json_text <- content(resp, "text", encoding = "UTF-8") json_data <- fromJSON(json_text) # 提取核心股息数据并转为DataFrame dividend_df <- as.data.frame(json_data$data$calendar$rows) # 查看结果示例 head(dividend_df)
关键注意点
- 必须携带
User-Agent字段模拟浏览器,否则API会拒绝访问或超时。 - 若仍有问题,可尝试添加
Referer字段(值设为https://www.nasdaq.com/),或更新httr、jsonlite包到最新版本。 - NASDAQ的非公开API规则可能随时变动,使用时需遵守其服务条款。
内容的提问来源于stack exchange,提问作者RDS
相关产品推荐
相关产品推荐

