首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中使用Rcrawler抓取多个网站?

如何在R中使用Rcrawler抓取多个网站?
EN

Stack Overflow用户
提问于 2019-03-27 23:30:18
回答 2查看 513关注 0票数 0

我注意到我们这里没有很多关于Rcrawler的问题,我认为它是一个很好的抓取网站的工具。然而,我有一个问题,告诉它刮多个网站,因为它目前只能做3个。如果有人有这个问题的经验,请让我知道。谢谢。

我试着把所有的URL放在一个列表/向量中,但还是不行。以下是我获取网站标题、描述和关键字的抓取代码。

代码语言:javascript
复制
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个以上的网站,它会给我这个错误:

代码语言:javascript
复制
Error in Rcrawler(Website = c("http://www.amazon.com", "www.yahoo.com",  : 
  object 'getNewM' not found
EN

回答 2

Stack Overflow用户

发布于 2019-07-10 05:42:44

就像这样。

代码语言:javascript
复制
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会获得什么。

票数 0
EN

Stack Overflow用户

发布于 2020-02-17 20:57:32

我不确定这在理论上是如何工作的,但您可以尝试创建许多对R crawler的调用。

例如,在while循环中:

代码语言:javascript
复制
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")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55380954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档