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

求助:如何在R环境中下载网页无直接链接的Word文档?

解决R语言rvest无法获取欧盟税局Word文档下载链接的问题

问题原因

你定位的action_word_export按钮没有静态的href属性,点击它是通过前端JavaScript发起动态请求,由后端实时生成Word文档后触发浏览器下载,所以直接用rvest解析静态HTML拿不到下载链接。

解决方案1:用RSelenium模拟浏览器点击下载

RSelenium可以模拟真实浏览器的交互,触发按钮的JS事件完成下载:

library(RSelenium)

# 启动Chrome浏览器(需提前配置好ChromeDriver环境)
driver <- rsDriver(browser = "chrome", port = 4567L)
remDr <- driver[["client"]]

# 访问目标页面
url <- "https://ec.europa.eu/taxation_customs/tedb/taxDetails.html?id=4205/1672527600"
remDr$navigate(url)

# 定位并点击Word导出按钮
word_btn <- remDr$findElement(using = "id", value = "action_word_export")
word_btn$clickElement()

# 等待下载完成(根据实际网速调整等待时长)
Sys.sleep(10)

# 关闭浏览器与服务
remDr$close()
driver$server$stop()

解决方案2:直接构造后端请求下载

通过浏览器开发者工具抓包可知,点击按钮后会向https://ec.europa.eu/taxation_customs/tedb/exportWord.htm发送POST请求,携带目标文档的ID参数,直接构造该请求即可下载:

library(httr)

# 构造请求目标与参数
target_url <- "https://ec.europa.eu/taxation_customs/tedb/exportWord.htm"
request_body <- list(
  id = "4205/1672527600"  # 与页面URL中的id参数保持一致
)

# 发送POST请求并保存文件
response <- POST(target_url, body = request_body, encode = "form")
writeBin(content(response, "raw"), "tax_detail.docx")

注意:如果遇到请求被拦截,可添加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")这类请求头模拟浏览器访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:18:22