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

使用rvest读取多个HTML链接爬取IMDB演职人员信息问题求助

解决方案

你代码中使用的read_htmls()并不是rvest包的官方内置函数,read_html()本身仅支持单个链接读取,要批量读取你已经生成的castlink链接列表,可使用以下两种方法实现:

方法1:基础R lapply 实现(无需额外安装包)

通过迭代函数对每一个链接单独调用read_html(),同时添加请求延迟避免被反爬封禁:

# 批量读取所有演职员表页面
cast_pages <- lapply(castlink, function(url) {
  # 每次请求间隔1秒,可根据情况调整时长
  Sys.sleep(1)
  read_html(url)
})

读取完成后cast_pages为列表格式,每个元素对应一部电影的演职员表HTML对象,可通过迭代提取需要的演职人员信息,示例如下:

# 示例:提取所有电影的主演姓名列表
cast_all <- lapply(cast_pages, function(page) {
  page %>% 
    html_nodes(".cast_list tr td:nth-child(2) a") %>% 
    html_text(trim = TRUE)
})

方法2:purrr map 实现(适合tidyverse生态用户)

如果你日常使用tidyverse系列工具,可以用purrr包的迭代函数简化代码:

library(purrr)

cast_pages <- map(castlink, ~{
  Sys.sleep(1)
  read_html(.x)
})

提示:IMDB有严格的反爬策略,短时间发送大量请求会被直接封禁IP,一定要添加合理的请求间隔。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:18:03