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

如何解决HTTP 429请求过多错误?R爬虫延迟优化需求

解决R爬虫HTTP 429错误:添加延迟的实现方案

HTTP 429错误是网站的请求频率限制,核心解决思路是给请求之间加上合理延迟,模拟人类浏览节奏,同时优化代码冗余请求。

关键修改点

  • 移除重复的read_html(link)调用(原代码重复调用两次,完全冗余)
  • 在列表页循环末尾添加延迟,避免快速爬取多个列表页
  • 在详情页请求环节替换sapply为循环,逐个请求并添加延迟(sapply会几乎同时发起所有详情页请求,是触发429的重灾区)
  • 用随机延迟而非固定值,更难被反爬机制识别

修改后的完整代码

CARS <- data.frame()
# 生成1-3秒随机等待时间的函数
random_delay <- function() {
  Sys.sleep(runif(1, min = 1, max = 3))
}

for (page_result in seq(from = 1, to = 2)) {
  link <- paste0("https://www.car.gr/classifieds/cars/?condition=used&modified=15&offer_type=sale&pg=",
                 page_result,"&registration-from=2000&significant_damage=f")
  
  # 仅保留一次read_html调用
  page <- read_html(link)
  
  Title <- page %>% html_nodes(".title") %>% html_text2()
  Price <- page %>% html_nodes(".price-fmt") %>% html_text2()
  
  car_links <- page %>% html_nodes(".row-anchor") %>% 
    html_attr("href") %>% paste0("https://www.car.gr", .)
  
  # 替换sapply为循环,逐个处理详情页并加延迟
  color <- c()
  gearing_system <- c()
  HP <- c()
  CC <- c()
  FUEL <- c()
  KM <- c()
  DATE <- c() # 修正原代码笔误,替换为对应日期获取函数
  CATEGORY <- c()
  
  for (link in car_links) {
    color <- c(color, get_color(link))
    gearing_system <- c(gearing_system, get_gearing_sys(link))
    HP <- c(HP, get_car_HP(link))
    CC <- c(CC, get_car_CC(link))
    FUEL <- c(FUEL, get_car_fuel(link))
    KM <- c(KM, get_car_km(link))
    DATE <- c(DATE, get_car_date(link)) # 请根据实际日期函数名调整
    CATEGORY <- c(CATEGORY, get_car_category(link))
    # 每个详情页请求后加随机延迟
    random_delay()
  }
  
  # 正确合并单页数据到总表(原rbind方式逻辑错误)
  current_page <- data.frame(Title, Price, color, gearing_system, HP, CC, FUEL, KM, DATE, CATEGORY)
  CARS <- rbind(CARS, current_page)
  
  print(paste("Page", page_result, "of", "2"))
  # 列表页之间加随机延迟
  random_delay()
}

额外说明

  • 随机延迟的时间范围可根据网站严格程度调整,若仍触发限制,可将max值调至5秒
  • 原代码中DATE <- sapply(car_links,get_car_km)为明显笔误,已修正为对应日期函数,请根据实际函数名调整
  • 若自定义函数内部包含请求逻辑,确保延迟加在每次请求之后,避免无间隔批量请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:30:33