专栏名称: EasyCharts
EasyCharts,易图表,我们将定期推送各种数据可视化与分析教程,包括Excel(Power BI)、Origin、Sigmaplot、GraphPad、R、Python、Matlab、Tableau、D3.js等。
目录
相关文章推荐
前端早读课  ·  【第3418期】HTML ... ·  2 天前  
前端早读课  ·  【早阅】深入探索 JavaScript ... ·  4 天前  
光伏资讯  ·  储能现在到底能不能投? ·  5 天前  
光伏资讯  ·  储能现在到底能不能投? ·  5 天前  
前端大全  ·  预测一波,最近前端即将起飞! ·  6 天前  
前端早读课  ·  【早阅】代码注释自动化:使用 VS ... ·  1 周前  
51好读  ›  专栏  ›  EasyCharts

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

EasyCharts  · 公众号  · 前端  · 2017-06-04 11:17

正文

这篇博文给大家分享如何使用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)


查看对热闻排序

as.data.frame( table(dat$新闻主题))%>%arrange(desc(Freq))%>%head()


绘制云词

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


欢迎关注魔方学院QQ群