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

R语言下拉列表网页爬取问题:获取签发国家列表报错排查

问题排查与解决方案

问题根源

你通过getURL获取页面后再传入read_html,容易出现编码或解析适配问题;而且rvest本身自带的read_html可以直接处理URL,无需依赖RCurl做额外请求。你的XPath语法本身没问题,但可以用更简洁直观的方式实现需求。

修正后的代码

library(rvest)
library(dplyr)

# 直接用rvest内置方法读取目标页面
url <- "https://ec.europa.eu/taxation_customs/dds2/ebti/ebti_consultation.jsp?Lang=en"
page <- read_html(url)

# 提取签发国家下拉框中第二个及以后的选项
dropdown_options <- page %>%
  html_element("#refcountry") %>%  # 定位到id为refcountry的下拉框
  html_elements("option") %>%      # 获取所有选项节点
  .[-1] %>%                        # 移除第一个默认选项
  html_text()                      # 提取选项文本

# 查看结果
print(dropdown_options)

代码说明

  • 移除了不必要的依赖包,只保留核心的rvest和dplyr
  • 用read_html(url)直接读取页面,避免getURL可能引发的解析异常
  • 通过.[-1]剔除第一个选项,比XPath的position()>1写法更直观易懂
  • 分步定位元素,逻辑更清晰,便于后续调试

异常处理补充

如果遇到反爬拦截,可添加浏览器UA头模拟正常请求:

page <- read_html(url, 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")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:50:21