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

使用jsonlite::fromJSON调用爬虫API时如何指定User-Agent解决429错误

解决R调用Helium API返回429错误的方案

错误原因

  • 你当前使用jsonlite::fromJSON直接传URL发起请求时,没有主动指定符合要求的User-Agent头,全局HTTPUserAgent配置不会被fromJSON的内置请求逻辑读取,不生效
  • 官方要求User-Agent必须为带你的应用标识的自定义值,直接复制通用浏览器UA也会被接口拦截
  • 循环请求时的频率如果不符合接口限制,也会触发429限流

修复方案

建议使用httr包自定义请求头发起调用,再将返回内容传给jsonlite解析,修改后的可运行代码如下:

# 先安装依赖包(已安装可跳过)
# install.packages(c("httr", "jsonlite", "anytime"))

library(jsonlite)
library(httr)
library(anytime)

# 自定义符合要求的User-Agent,替换成你自己的应用信息即可
CUSTOM_UA <- "your-app-name/1.0 (your-contact-info)"
blocks_api <- 'https://api.helium.io/v1/blocks'

# 封装统一的请求函数,自动加UA、处理429重试
helium_api_get <- function(url) {
  resp <- GET(url, user_agent(CUSTOM_UA))
  # 遇到429就等待3秒重试
  if (status_code(resp) == 429) {
    Sys.sleep(3)
    resp <- GET(url, user_agent(CUSTOM_UA))
  }
  stop_for_status(resp)
  return(fromJSON(content(resp, "text", encoding = "UTF-8")))
}

# 后续接口调用全部用封装好的函数
blocks <- helium_api_get(blocks_api)

endTime <- Sys.Date()
blockMax_api <- paste0(blocks_api,"/height","/?max_time=",endTime)
blockMax_ep <- helium_api_get(blockMax_api)
blockMax <- max(blockMax_ep$data$height)

startTime <- Sys.Date() - 1
blockMin_api <- paste0(blocks_api,"/height","/?max_time=",startTime)
blockMin_ep <- helium_api_get(blockMin_api)
blockMin <- blockMin_ep$data$height
period_blocks <- blockMax - blockMin

blockTimes <- data.frame()
oraclePrice <- 'https://api.helium.io/v1/oracle/prices'

for(i in blockMin:blockMax){
  block_n <- helium_api_get(paste0(blocks_api,"/",i))
  block_n <- as.data.frame(block_n)
  block_n$data.time <- anytime(block_n$data.time)
  block_n <- block_n[,c(2,5,6)]
  oracleBlockPrice <- helium_api_get(paste0(oraclePrice,"/",i))
  block_n$HNTprice <- oracleBlockPrice$data$price / 100000000
  blockTimes  <- rbind(blockTimes,block_n)
  Sys.sleep(1.5) # 适当延长间隔避免触发限流
}

注意事项

  • User-Agent请替换为你自己的应用名称+联系方式,不要使用公共浏览器UA,符合官方接口要求
  • 如果依然触发429,可以继续调大Sys.sleep的等待时长,或者在429重试逻辑里增加等待时间

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:51:00