使用Rvest抓取Google新闻

时间:2019-04-08 14:54:03

标签: r web-scraping rvest

我曾经有一个能够从google news刮掉标题的函数,但是似乎他们改变了CSS或其他内容。它不再起作用了。

这是我修复它的最接近的尝试:

library('rvest')
library('tidyverse')
headlines <- function(){
  message("Here are some of today's headlines:")
  html <- read_html("https://news.google.com/news/?ned=us&gl=US&hl=en")
  headlines = html %>%
    html_nodes(".SbNwzf") %>%
    html_text()

  for(i in 1:10){
    cat(paste("\t",headlines[i],"\n\n"))
    Sys.sleep(1.3)
  }
  headlines

}
headlines()

这与我想要的非常接近,但我希望仅获得头条新闻。看来这也正在获得文章的第一部分。

此外,如果有人能够获得每个框的顶部标题,那将是更好的选择。正在尝试节点“ .VDXfz”,但它返回空白。我正在使用selector gadget

谢谢!

1 个答案:

答案 0 :(得分:0)

这是最终起作用的地方:

headlines <- function(){
  message("Here are some of today's headlines:")
  html <- read_html("https://news.google.com/news/?ned=us&gl=US&hl=en")
  headlines = html %>%
    html_nodes('.DY5T1d') %>% # <-- THIS
    html_text()

  for(i in (0:9)*5+1){ # PRINT EVERY 5TH ENTRY
    cat(paste("\t",headlines[i],"\n\n"))
    Sys.sleep(1.3)
  }

}

不幸的是,这取决于Google新闻,其中保留一个主题的领先文章和4个支持文章的格式。我仍然无法为主要文章识别标记,因此我可以单独挑选它们。