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

爬取《指环王》电影脚本时小部分页面失败的技术求助

解决《双塔奇兵》早期脚本页面爬取失败的问题

你的问题核心是部分页面无法通过#AutoNumber1选择器抓取表格,原因大概率是页面编码不兼容——这类老站点的早期页面可能使用了非UTF-8编码(比如ISO-8859-1),read_html默认用UTF-8解析时会破坏DOM结构,导致找不到目标元素。

修复方案:指定页面编码读取

修改代码,在read_html中明确指定编码为ISO-8859-1:

library(dplyr)
library(rvest)

url_fail <- "http://www.ageofthering.com/atthemovies/scripts/thetwotowers1to4.php"

# 指定编码解析页面
fail <- read_html(url_fail, encoding = "ISO-8859-1") %>%
  html_elements("#AutoNumber1") %>%
  html_table()

summary(fail)

验证编码的方法

如果不确定编码,可以先读取原始内容检测:

# 读取原始内容并指定编码
raw_content <- read_lines(url_fail, locale = locale(encoding = "ISO-8859-1"))
# 查看前几行确认无乱码
head(raw_content)

如果内容正常显示,说明编码指定正确,此时再用read_html解析就能正确识别DOM结构。

补充说明

Chrome会自动识别页面编码并正确渲染,所以你在开发者工具里看到的结构是正常的,但rvest的默认解析规则没有自动适配这种老编码,导致元素查找失败。这个方案同样适用于其他同类型的老站点爬取问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:50:19