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

使用rvest爬取多页网页表格仅能获取前10条数据如何解决

爬取不到全量数据的原因

该站点的士兵表格采用异步分页加载逻辑,首次访问页面仅返回第一页共10条数据,剩余数据需要切换页码时由浏览器在后台发起请求动态加载,因此静态爬取首页源码只能获取到前10条记录。

解决方案

可以选择以下两种方案实现全量数据爬取:

方案1:模拟分页接口请求(效率更高)

  • 打开浏览器开发者工具(F12),切换到「网络」面板,筛选「XHR/ fetch」类型的请求
  • 点击表格的第二页,找到对应的分页数据请求,查看请求地址、请求参数和响应格式:通常这类请求会包含paged(页码)、per_page(每页返回条数)两类核心参数
  • 可以先尝试将per_page参数值改为31385,确认接口是否支持一次性返回全量数据;如果不支持则构造循环,依次请求每一页的数据后合并
  • 请求时注意添加User-Agent请求头,避免被站点拦截

示例代码逻辑:

library(httr)
library(jsonlite)
library(dplyr)

# 替换为你抓到的实际接口地址和参数模板
base_url <- "你抓到的分页接口地址"
total_page <- 3139 # 按每页10条算总页数约3139页,可根据接口返回的总页数调整
all_data <- data.frame()

for (i in 1:total_page) {
  res <- GET(
    url = base_url,
    query = list(paged = i, per_page = 10), # 替换为实际的请求参数
    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")
  )
  # 解析响应数据,根据接口返回的是JSON还是HTML片段调整解析逻辑
  page_data <- content(res, as = "text") %>% 
    read_html() %>% 
    html_nodes("table") %>% 
    html_table(fill = T) %>% 
    as.data.frame()
  all_data <- bind_rows(all_data, page_data)
  # 加延时避免请求过快被封
  Sys.sleep(1)
}

方案2:用RSelenium模拟浏览器操作(门槛更低)

如果不想抓接口,可以直接用RSelenium模拟真实浏览器翻页,爬取每一页的表格数据后合并:

library(RSelenium)
library(rvest)
library(dplyr)

# 启动浏览器驱动
driver <- rsDriver(browser = "chrome", chromever = "你本地安装的Chrome对应版本")
remDr <- driver$client
remDr$navigate("https://irelandsgreatwardead.ie/the-archive/")

all_data <- data.frame()
total_page <- 3139 # 也可以从页面元素获取总页码数
for (i in 1:total_page) {
  # 解析当前页表格
  page_source <- remDr$getPageSource()[[1]]
  page_data <- read_html(page_source) %>% 
    html_nodes("table") %>% 
    html_table(fill = T) %>% 
    as.data.frame()
  all_data <- bind_rows(all_data, page_data)
  # 点击下一页按钮,替换为实际的下一页按钮CSS选择器
  next_btn <- remDr$findElement(using = "css selector", value = "下一页按钮的CSS选择器")
  next_btn$clickElement()
  Sys.sleep(1)
}

# 关闭驱动
remDr$close()
driver$server$stop()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:45:02