求助:使用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
相关产品推荐
相关产品推荐

