r语言 - 使用 rvest 进行网络抓取不起作用



我正在尝试从这个网站上抓取评论:

http://www.latercera.com/noticia/trabajos-realizan-donde-viven-los-extranjeros-tienen-residencia-chile/

这是我完成此任务的代码。

url <- 'http://www.latercera.com/noticia/trabajos-realizan-donde-viven-los-extranjeros-tienen-residencia-chile/'
webpage <- read_html(url)
data_html <- html_nodes(webpage,"gig-comment-body")

不幸的是,rvest似乎没有通过CSS选择器(gig-comment-body)识别节点。

节点是一个空列表,所以它没有抓取任何东西。

这是没有码头工人的硒的另一种解决方案

install.packages("RSelenium")
library (RSelenium)

driver<- rsDriver()
remDr <- driver[["client"]]
remDr$navigate("http://www.latercera.com/noticia/trabajos-realizan-donde-viven-los-extranjeros-tienen-residencia-chile/")
elem <- remDr$findElement( using = "id",value = "commentsDiv-779453")
#or
elem <- remDr$findElement( using = "class name", "gig-comments-comments")
elem$highlightElement() # just for interactive use in browser.
elemtxt <- elem$getElementAttribute("outerHTML") # gets us the HTML

@r2evans是正确的。它使用 javascript 构建注释<div>,并且还需要延迟。我更喜欢 Splash 而不是硒(我做了splashr所以我并不完全公正):

library(rvest)
library(splashr)
URL <- 'http://www.latercera.com/noticia/trabajos-realizan-donde-viven-los-extranjeros-tienen-residencia-chile/'
# Needs Docker => https://www.docker.com/
# Then needs splashr::install_splash()
start_splash()
splash_local %>% 
  splash_response_body(TRUE) %>% 
  splash_go(URL) %>% 
  splash_wait(10) %>% 
  splash_html() -> pg
html_nodes(pg, "div.gig-comment-body")
## {xml_nodeset (10)}
##  [1] <div class="gig-comment-body"><p><span>Algunosdesubicados comentan y se refieren a la UE<span>  </span>como si en alguna forma Chil ...
##  [2] <div class="gig-comment-body">Si buscan información se encontrarán que la unión Europea se está desmorona ndo por asunto de la inmi ...
##  [3] <div class="gig-comment-body">Pocos inmigrantes tiene Chile en función de su población. En España hay 4.5 mill de inmigrantes. 800. ...
##  [4] <div class="gig-comment-body">Chao chilenois idiotas tanto hablan y dicen que hacer cuando ni su pais les pertenece esta gobernado  ...
##  [5] <div class="gig-comment-body">n<div> Victor Hugo Ramirez Lillo, de Conchalí, exiliado en Goiania, Brasil, pecha bono de exonerado, ...
##  [6] <div class="gig-comment-body">Les escribo desde mi 2do pais, USA.  Mi PDTE. TRUMP  se bajó del  TPP y Chile se va a la cresta. La o ...
##  [7] <div class="gig-comment-body">En CHILE siempre fuimos muy cuidadosos con le emigración, solo lo MEJOR de Alemania, Francia, Suecia, ...
##  [8] <div class="gig-comment-body"><span>Basta de inmigración!!! Santiago está lleno de vendedores ambulantes extranieros!!!¿¿esos son l ...
##  [9] <div class="gig-comment-body">IGNOREN A JON LESCANO, ESE ES UN CHOLO QUE FUE DEPORTADO DE CHILE.<div>IGNOREN A  LOS EXTRANJEROS MET ...
## [10] <div class="gig-comment-body">Me pregunto qué dirá el nacionalista promedio cuando agarre un libro de historia y se dé cuenta de qu ...
killall_splash()