標籤:

R語言抓取《歡樂頌2》熱聞

原創 2017-06-04 周世榮 EasyCharts

這篇博文給大家分享如何使用R語言抓取《歡樂頌2》的熱門新聞,博文給出了一個封裝的函數,只要輸入關鍵詞和頁數就可把百度新聞中與該關鍵詞有關的內容抓取出來。

需要載入的包

library(rvest)

library(stringr)

library(tidyverse)

熱聞抓取函數

fun=function(keyword,page){

theme=author=date=href=NULL

for(i in 1:page){

url=sprintf(百度新聞搜索_%s,

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)

EasyCharts團隊出品

帥的人都關注了EasyCharts團隊^..^~

QQ交流群:553270834

微信公眾號:EasyCharts

更多信息敬請查看: easychart.github.io/pos


推薦閱讀:

Learn R | Association Rules of Data Mining(二)
如何用R語言計算形態坐標矩陣的質心距離?
【詐屍譯文】R 3.4.0的性能提升
[譯] 解密 Airbnb 的數據科學部門如何構建知識倉庫
僅用四行代碼就可以挖掘你的QQ聊天記錄

TAG:R编程语言 |