在 R for 循环中延迟抓取几分钟
delay scrape for few minutes in R for loop
我正在尝试抓取一个网站,但它不允许我抓取超过 9 页,有什么方法可以让我在抓取 9 页后停止循环并中断一两分钟,然后重新开始抓取?
代码如下:
library(RCurl)
library(stringr)
library(XML)
jt<- c()
for (i in 1:70){
tryCatch({
html<- getURL((url[[i]]), followlocation = TRUE)
doc = htmlParse(html, asText=TRUE)
new <- xpathSApply(doc, "div/a",
xmlValue)
jt[[i]] <- new},error=function(e){cat("ERROR :",conditionMessage(e), "\n")})}
如果您添加 if(i %% 9 == 0) {Sys.sleep(60)}
,它将每 9 次迭代暂停 60 秒。 %%
运算符 returns 将 i
除以 9 的余数,因此如果它等于 0,则您已经完成了 9 次迭代。
我正在尝试抓取一个网站,但它不允许我抓取超过 9 页,有什么方法可以让我在抓取 9 页后停止循环并中断一两分钟,然后重新开始抓取?
代码如下:
library(RCurl)
library(stringr)
library(XML)
jt<- c()
for (i in 1:70){
tryCatch({
html<- getURL((url[[i]]), followlocation = TRUE)
doc = htmlParse(html, asText=TRUE)
new <- xpathSApply(doc, "div/a",
xmlValue)
jt[[i]] <- new},error=function(e){cat("ERROR :",conditionMessage(e), "\n")})}
如果您添加 if(i %% 9 == 0) {Sys.sleep(60)}
,它将每 9 次迭代暂停 60 秒。 %%
运算符 returns 将 i
除以 9 的余数,因此如果它等于 0,则您已经完成了 9 次迭代。