R语言抓取《欢乐颂2》热闻

浏览: 1555

这篇博文给大家分享如何使用R语言抓取《欢乐颂2》的热门新闻,博文给出了一个封装的函数,只要输入关键词和页数就可把百度新闻中与该关键词有关的内容抓取出来。

需要加载的包

library(rvest)
library(stringr)
library(tidyverse)

热闻抓取函数

fun=function(keyword,page){
  theme=author=date=href=NULL
  for(i in 1:page){
    url=sprintf('http://news.baidu.com/ns?word=%s&pn=%s0&cl=2&ct=1&tn=news&rn=20&ie=utf-8&bt=0&et=0',
                keyword,i)
    web=read_html(url)
    theme=c(theme,web%>%html_nodes('h3')%>%html_text())
    txx=web%>%html_nodes('.c-author')%>%html_text()
    date=c(date,txx%>%
      str_extract_all('\\d{4}年\\d{1,2}月\\d{1,2}日 \\d{1,2}:\\d{1,2}|\\d{1,2}小时前|\\d{1,2}分钟前')%>%
      unlist())

   
 txx1=txx%>%str_split('\\d{4}年\\d{1,2}月\\d{1,2}日 \\d{1,2}:\\d{1,2}|\\d{1,2}小时前|\\d{1,2}分钟前')%>%
      unlist()%>%str_trim()
    author=c(author,txx1[txx1%>%str_length()>1])
    href=c(href,web%>%html_nodes('h3>a')%>%html_attr('href'))
  }
  dat = data.frame(新闻主题=theme, 新闻单位=author, 新闻日期=date,新闻链接=href,
                       stringsAsFactors = F)
  return(dat)
}

抓取《欢乐颂2》热闻

dat=fun('欢乐颂2',10)
DT::datatable(dat)

image.png

查看对热闻排序

image.png

绘制云词

library(wordcloud2)
wordcloud2(table(dat$新闻主题),color="random-light",backgroundColor = 'black')

image.png

欢迎关注魔方学院QQ群


推荐 2
本文由 EasyCharts 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册