R-排除已经生成的随机数
R- Excluding random numbers that have already been generated
所以我正在用 R 开发一个网络抓取脚本,因为我抓取的特定网站对大量抓取数据的人不太友善,所以我分解了我的循环以仅处理一次 10 个链接。但是,我仍然想以随机且缓慢的方式浏览所有链接。
productLink # A list of all the links that I'll be scraping
x<- length(productLink)
randomNum <- sample(1:x, 10)
library(rvest)
for(i in 1:10){
url <- productLink[randomNum[i]]
specs <- url %>%
html() %>%
html_nodes("h5") %>%
html_text()
specs
message<- "\n Temporarily unavailable\n "
if(specs == message){
print("Item unavailable")
}
else{
print("Item available")
}
}
现在,下次我 运行 这个 for 循环时,我想排除在循环的前一个 运行 中已经尝试过的所有随机编号索引。这样 for 循环 运行s 每次通过 10 个新链接,直到所有链接都被使用。我还想就此提出一些意见。由于我可以通过蛮力抓取特定公司的网站来提高警报标志,有什么办法可以减慢这个循环,使其每隔几分钟只 运行s 吗?我正在考虑一个超时函数或类似的代码 运行s for 循环一次,等待几分钟然后再次 运行s 它(如上所述每次都有新链接)。有什么想法吗?
使用这样的东西。随机循环所有产品索引。
for (i in sample(1:x)){
<Your code here>
# Sleep for 120 seconds
Sys.sleep(120)
}
如果你想一次做 10 个。每执行 10 次就休眠 120 秒。
n = 1
for (i in sample(1:x)){
# Sleep for 120 seconds every 10 runs
if (n == 10) {Sys.sleep(120); n = 0}
n = n+1
<Your code here>
}
所以我正在用 R 开发一个网络抓取脚本,因为我抓取的特定网站对大量抓取数据的人不太友善,所以我分解了我的循环以仅处理一次 10 个链接。但是,我仍然想以随机且缓慢的方式浏览所有链接。
productLink # A list of all the links that I'll be scraping
x<- length(productLink)
randomNum <- sample(1:x, 10)
library(rvest)
for(i in 1:10){
url <- productLink[randomNum[i]]
specs <- url %>%
html() %>%
html_nodes("h5") %>%
html_text()
specs
message<- "\n Temporarily unavailable\n "
if(specs == message){
print("Item unavailable")
}
else{
print("Item available")
}
}
现在,下次我 运行 这个 for 循环时,我想排除在循环的前一个 运行 中已经尝试过的所有随机编号索引。这样 for 循环 运行s 每次通过 10 个新链接,直到所有链接都被使用。我还想就此提出一些意见。由于我可以通过蛮力抓取特定公司的网站来提高警报标志,有什么办法可以减慢这个循环,使其每隔几分钟只 运行s 吗?我正在考虑一个超时函数或类似的代码 运行s for 循环一次,等待几分钟然后再次 运行s 它(如上所述每次都有新链接)。有什么想法吗?
使用这样的东西。随机循环所有产品索引。
for (i in sample(1:x)){
<Your code here>
# Sleep for 120 seconds
Sys.sleep(120)
}
如果你想一次做 10 个。每执行 10 次就休眠 120 秒。
n = 1
for (i in sample(1:x)){
# Sleep for 120 seconds every 10 runs
if (n == 10) {Sys.sleep(120); n = 0}
n = n+1
<Your code here>
}