私はいくつかのウェブサイトを"RSelenium"しかし、ウェブサイトが私の掻き取りの試みを検出したようです。各擦り傷の間にある程度の時間差を導入することは可能でしょうか。私のコードはこれです
Library("XML")
library("RSelenium")
checkForServer() # search for and download Selenium Server java binary. Only need to run once.
startServer() # run Selenium Server binary
remDr <- remoteDriver(browserName="firefox", port=4444) # instantiate remote driver to connect to Selenium Server
remDr$open(silent=T) # open web browser
page_sub = read.csv("indigogo_edu_us.csv")
url_list = as.vector(page_sub$full_url[1:3])
scrape = function(url_list){
remDr$navigate(url_list) # navigates to webpage
elem <- remDr$findElement(using="class", value="i-description")
elemtxt <- elem$getElementAttribute("outerHTML")[[1]]
elemxml <- htmlTreeParse(elemtxt, useInternalNodes=T)
fundList <- unlist(xpathApply(elemxml, "//input[@title]", xmlGetAttr, "title")) # parses out just the fund name and ticker using XPath
page = as.data.frame(xpathSApply( elemxml,"//div[@class="i-description"]", xmlValue, encoding="utf-8"))
names(page)[1] = "description"
}
cc = lapply(url_list, scrape)
回答:
回答№1は2もちろん、 Sys.sleep
。乱数ジェネレータを使用してランダムに表示することもできます。
行に沿った何か
Sys.sleep(runif(1, min = 3, max = 11))