我注意到我们这里没有很多关于Rcrawler的问题,我认为它是一个很好的抓取网站的工具。然而,我有一个问题,告诉它刮多个网站,因为它目前只能做3个。如果有人有这个问题的经验,请让我知道。谢谢。
我试着把所有的URL放在一个列表/向量中,但还是不行。以下是我获取网站标题、描述和关键字的抓取代码。
Rcrawler(Website = c("http://www.amazon.com", "www.yahoo.com", "www.wsj.com"),
no_cores = 3, no_conn = 3, MaxDepth = 0,
ExtractXpathPat = c('/html/head/title', '//meta[@name="description"]/@content', '//meta[@name="keywords"]/@content'),
PatternsName = c("Title", "Description", "Keywords"), saveOnDisk = FALSE)如果我有3个以上的网站,它会给我这个错误:
Error in Rcrawler(Website = c("http://www.amazon.com", "www.yahoo.com", :
object 'getNewM' not found发布于 2019-07-10 05:42:44
就像这样。
library(tidyverse)
library(rvest)
# Create vector
mylist <- c("http://www.amazon.com", "http://www.yahoo.com", "http://www.wsj.com")
# Create the for statement
for (i in mylist)
{
#print(i)
webpage <- read_html(i)
print(webpage)
}或者,将每个页面加载到一个列表中并解析该列表。最后,您可以考虑将结果保存到CSV。你应该知道,抓取许多不同的网页几乎肯定会产生截然不同的结果。我可以肯定地理解为什么一个人想要循环访问同一站点的不同URL,但我不确定通过循环访问不同站点的不同URL会获得什么。
发布于 2020-02-17 20:57:32
我不确定这在理论上是如何工作的,但您可以尝试创建许多对R crawler的调用。
例如,在while循环中:
a <- list()
Rcrawler_function <- function(no_conn,no_cores,MaxDepth ,Obeyrobots,saveOnDisk,ExtractXpath)
{
x <- 1
while(x < 5)
{
tryCatch( expr = {
Rcrawler(ads_txt_4_cat$gen_link[x],no_conn = no_conn,no_cores = no_cores,MaxDepth = MaxDepth,Obeyrobots = Obeyrobots,saveOnDisk = saveOnDisk,ExtractXpathPat = ExtractXpath)
assign("DATA",DATA,envir = globalenv())
a[[x]] <<- DATA
x = x+1
}
, error=function(e){cat("ERROR :",conditionMessage(e), "\n")})
}
}
Rcrawler_function(4,4,0,T,F,"body")https://stackoverflow.com/questions/55380954
复制相似问题