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

使用R语言polite包下载XML.GZ文件时遭遇403 Forbidden错误

解决polite包下载XML.GZ文件时403 Forbidden的问题

你遇到的403错误是因为网站的反爬机制识别了R默认的请求标识,拒绝了非浏览器发起的请求。浏览器能正常下载是因为它会携带包含浏览器信息的请求头,服务器会允许这类请求。

修改后的代码

在bow()函数中添加自定义的user_agent参数,模拟浏览器的请求标识即可解决问题:

library(polite)

# 目标文件URL
eprice_xml_products_1 <- "https://www.eprice.it/sitemap/https/Sitemap_Elettrodomestici_1.xml.gz"

# 创建会话时指定浏览器风格的User-Agent
session <- bow(eprice_xml_products_1, 
               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")

# 下载文件到本地
file_path <- rip(session, destfile = "xml_1.gz")
print(file_path)

如果你偏好管道写法,可以简化为:

library(polite)
library(magrittr)

eprice_xml_products_1 <- "https://www.eprice.it/sitemap/https/Sitemap_Elettrodomestici_1.xml.gz"

bow(eprice_xml_products_1, 
    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") %>%
  rip(destfile = "xml_1.gz")

额外说明

  • 不需要调用nod(),因为bow()已经直接指向了目标文件的URL,nod()用于导航到同一域名下的其他子路径,这里完全多余。
  • 你可以根据自己常用的浏览器调整user_agent的值,比如Firefox的标识是Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0,只要是合法的浏览器User-Agent都可以。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 14:27:46