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

R语言爬取纳斯达克RSS XML Feed失败,多包测试均报错如何解决?

故障原因

纳斯达克RSS接口对请求头的User-Agent字段、TLS协议版本有强制校验,未携带合法浏览器标识、TLS版本低于1.2的请求会被直接拦截,这是所有请求报错的核心原因。

解决方案

方法1:基于httr构造合规请求后解析

library(httr)
library(XML)

my_url <- "https://www.nasdaq.com/feed/rssoutbound?symbol=BAC"

# 构造符合服务器要求的请求参数
response <- GET(
  url = my_url,
  # 模拟常规浏览器UA,可替换为你自己当前浏览器的实际UA
  user_agent("Mozilla/5.0 (Macintosh; Intel Mac OS X 13_5; rv:109.0) Gecko/20100101 Firefox/116.0"),
  # 指定使用TLS 1.2及以上版本
  config(sslversion = 4)
)

# 校验请求状态,返回200即为请求成功
if (status_code(response) == 200) {
  # 提取XML文本内容
  feed_text <- content(response, as = "text", encoding = "UTF-8")
  # 解析XML
  xml_data <- xmlTreeParse(feed_text, useInternalNodes = TRUE)
}

方法2:适配tidyRSS使用

已经请求成功的XML文本可以直接传入tidyfeed函数,不需要再重复请求:

library(tidyRSS)

# 直接传入方法1中获取的feed_text即可
parsed_feed <- tidyfeed(feed_text)

注意事项

  • 每小时1次的请求频率远低于接口限流阈值,正常使用不会被封IP
  • 若后续出现UA拦截,替换为你自己当前浏览器的User-Agent值即可
  • 无需将链接改为http,http请求会被服务器直接重定向到https,反而增加请求失败概率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:15:02