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

网页爬虫解决HTTP 403后返回‘Character (0)’问题求助

网页爬虫无法获取信息问题

输入图片描述

我的网页爬虫代码无法获取任何信息。

我一直在尝试解决该问题,起初遇到如下错误代码:

Error in open.connection(x, "rb") : HTTP error 403.

但我通过第4-7行代码解决了该错误,现在却返回character (0),请问该如何解决此问题?


解决建议

  • 检查页面渲染方式
    若目标网站是动态加载内容(比如依赖JS渲染),静态HTTP请求只能拿到空HTML结构,自然提取不到数据。可以用rvest搭配RSelenium或chromote模拟浏览器环境,抓取完整渲染后的页面。

  • 补全请求头信息
    虽然解决了403,但请求头可能仍不完整。复制浏览器正常访问时的全部请求头(包括Referer、Accept-Language、最新版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",
      "Accept" = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
      "Referer" = "https://目标网站的来源页面URL",
      "Accept-Language" = "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3"
    )
    
  • 验证内容选择器
    character(0)通常意味着你用的CSS选择器/XPath路径没有匹配到任何元素。打开目标页面的开发者工具,重新定位目标元素,确认选择器的准确性。如果目标元素在iframe内,需要先切换到iframe再执行提取操作。

  • 查看原始返回内容
    打印请求到的页面原始文本(如cat(html_text(page))),确认页面中是否存在你要提取的内容。如果返回空白或无关内容,可能是网站反爬机制生效,可尝试添加请求延迟(Sys.sleep(2))或带上浏览器的有效Cookie。

  • 应对反爬策略
    部分网站会检测请求频率或验证会话,可在请求之间设置随机延迟,或者从浏览器复制当前会话的Cookie添加到请求头,模拟真实用户的访问行为。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:10:10