R脚本的问题 - 从列表中采样并使用间隔

时间:2015-09-01 12:25:36

标签: r loops dns

您好,这是我的代码......

# Load Libraries and Suppress Messages:
#
suppressMessages(library(dplyr))        # Re-arranging data frames
suppressMessages(library(httr))         # For http utilities
#
# Read in the URL Data from CSV:
print("Read the Data into R...")
url_list <- read.csv(file="urllist.csv", stringsAsFactors=FALSE, header=FALSE)
#
# Example HTTR Package 'HTTP GET' Code:
# GET("http://symantec.com/")
#
# For' Loop for URL List Iterations
for (i in 1:40) {
  selected_sample <- sample(url_list$V1, size=1, replace=FALSE)
  GET(selected_sample)
  interval <- runif(1, min=1, max=2)
  Sys.sleep(interval)
}
#
# Finish the Script:
print("Finished & Closing Script")

以下是错误消息:

[1] "Initializing Script"
[1] "Read the Data into R..."
Error in curl::curl_fetch_memory(url, handle = handle) : 
  Couldn't resolve host name

以下是我的解释:

我正在尝试编写一个测试脚本,该脚本将在一段时间(1小时)内从URL列表中读取,并在DNS日志中的DNS服务器上生成DNS请求。 DNS日志中DNS请求的生成正在起作用,但正确的时机正在变得棘手。

我遇到了&#34; interval&lt; - runif(1,min = 1,max = 2)&#34;线。我认为它应该只对矢量说1,但是它有1个错误,如果我使用40它的错误相同,而如果我使用3它没有错误但我不明白为什么?

我也想约1小时我的FOR循环应设置为循环约2400次,间隔为1到2秒?

非常感谢任何帮助或想法。

谢谢里克

1 个答案:

答案 0 :(得分:0)

在GET之前打印出每个网址,以确保它们符合您的预期。 - pcantalupo

错误是GET(curl)中的分辨率问题我不明白你为什么责备runif ... - Tensibai

嗨pcantalupo和Tensibai,非常感谢你的建议真的有帮助。我想我的网址列表中有一个糟糕的网址。我把它替换为另一个并设法运行没有错误。非常感谢,Rick - rick_thompson

600次迭代花了大约1个小时,谢谢,现在所有问题都解决了。