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

使用RCurl抓取情感数据前,如何设置等待时长?

解决curl抓取前添加等待时长的问题

你当前抓取到的数据显示为"--",是因为目标页面的情感数据可能是通过JavaScript动态加载的,直接发起请求时页面还未完成数据填充,添加等待时长可以解决这个问题。以下是两种适配你现有代码的方案:

方案一:使用Sys.sleep()简单暂停

这是最直接的方式,让R会话暂停指定秒数后再发起请求,示例中设置等待5秒:

library(stringr)
library(curl)

# 等待5秒,可根据实际情况调整时长
Sys.sleep(5)

links <- "https://www.dailyfx.com/sentiment"
con <- curl(links)
open(con)
html_string <- readLines(con, n = 3000)
html_string[1580:1700]

方案二:结合curl的超时与重试(更稳健)

如果页面加载时长不稳定,可以设置curl的超时参数,并配合重试机制,确保抓取到加载完成的页面:

library(stringr)
library(curl)

links <- "https://www.dailyfx.com/sentiment"
# 设置curl选项:超时10秒,重试2次
h <- new_handle(timeout = 10, retry = 2)
# 先等待3秒再发起请求
Sys.sleep(3)
con <- curl(links, handle = h)
open(con)
html_string <- readLines(con, n = 3000)
html_string[1580:1700]

注意事项

  • 等待时长可根据实际页面加载速度调整,一般3-10秒足够。
  • 如果上述方法仍无法获取真实数据,说明页面依赖复杂的JavaScript渲染,此时需要使用RSelenium、playwrightR等支持动态页面渲染的工具。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 07:09:18