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

求助:使用R语言抓取网页表格数据时出现错误

解决R语言抓取指定网页表格的报错问题

首先,你用的XML包已经停止维护,且该网站存在基础反爬策略,直接用htmlParse无法正确解析内容。推荐用更现代的rvest包处理,以下是可行方案:

步骤1:安装并加载必要的包

# 首次使用需安装包
install.packages("rvest")
install.packages("httr")

# 加载包
library(rvest)
library(httr)

步骤2:模拟浏览器请求抓取网页

该网站会校验请求的User-Agent,需伪装成浏览器请求:

# 设置请求头
headers <- c(
  "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"
)

# 目标URL
url <- "https://www.westmetall.com/en/markdaten.php?action=show_table&field=LME_Cu_cash"

# 抓取网页内容
page <- read_html(GET(url, add_headers(.headers = headers)))

步骤3:提取表格数据

# 提取页面中的目标表格(根据页面结构,目标表格为第一个table节点)
tb <- page %>%
  html_element("table") %>%
  html_table(header = TRUE)

# 查看结果
head(tb)

原代码报错原因

  • XML包解析逻辑老旧,对现代网页兼容性差,尤其是带反爬机制的网站
  • 未携带User-Agent的请求被网站识别为非浏览器请求,返回的内容为空或错误页面,导致getNodeSet找不到有效表格节点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:20:43