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

使用R语言批量爬取多页面图片URL遇阻求助

解决R语言批量爬取多页面图片URL的问题

你的代码问题在于每次循环都直接覆盖了存储结果的变量,导致最终只保留了最后一页的图片URL。要实现多页面数据的累积,需要先初始化一个容器(比如列表)来存储每一页的结果,再在循环中逐步添加。

修改后的代码

library("rvest")
library("ralger")

# 初始化空列表,用于存储所有页面的图片URL
all_image_urls <- list()

for(page_result in 1:100){
  # 构造当前页的URL
  current_link <- paste0("https://www.istockphoto.com/search/2/image?alloweduse=availableforalluses&mediatype=photography&phrase=man&page=", page_result)
  # 获取当前页的图片URL
  page_urls <- images_preview(current_link)
  # 将当前页结果存入列表
  all_image_urls[[page_result]] <- page_urls
  
  # 关键:添加请求延迟,避免短时间内大量请求触发网站反爬机制
  Sys.sleep(1)
}

# 合并所有页面的结果为一个数据框(适配images_preview返回的数据格式)
final_image_data <- do.call(rbind, all_image_urls)

# 如果需要提取纯URL向量,可执行:
# final_url_vec <- unlist(all_image_urls)

关键说明

  • 用list()初始化all_image_urls,确保每一页的结果都能被单独存储,不会被覆盖
  • 使用all_image_urls[[page_result]] <- page_urls将当前页数据添加到列表中,而不是直接赋值
  • 添加Sys.sleep(1)是为了降低请求频率,避免被网站判定为恶意爬虫而封禁IP

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:15:31