我把我用R写的第一个爬虫就献给了国家

  • 王亨
  • 5 Minutes
  • June 10, 2017

  作为我国社会主义事业的建设者和接班人,不仅要继承前辈开创的伟大事业,更要推进中国特色社会主义的航船继续破浪前进。
  这不,为了响应习大大开展的“两学一做”学习教育,我不仅认真学习共产党党章党规,学习贯彻习近平总书记系列重要讲话精神,争做一名合格党员。今天我就要用自己的技术来学习今年的《政府工作报告》
今天我们要用爬虫来爬取这篇文章,然后进行文本分词,再到文本可视化。我们需要使用下面这三个包:
(1)rvest 爬虫
(2)jiebaR 用于分词,统计词频
(3)wordcloud2 用于对文本进行可视化

1.使用rvest包爬取文章。

  首先,我需要对网页标签进行查看分析,下面这张图就是我用谷歌浏览器,对网页标签进行分析的过程。


不知道大家有没有注意到下面这个表签。我们需要爬取的文字就在这个标签里面。

现在我们就开始写爬取代码:
1
2
3
4
library(rvest)
url<-'http://www.gov.cn/premier/2017-03/16/content_5177940.htm'
web<-read_html(url,encoding="utf-8") #读取数据,规定编码
position<-web %>% html_nodes("div.pages_content") %>% html_text()

%>%管道函数,将左边的值赋给右边函数作为第一个参数的值。
web存储网页信息的变量。
然后html_nodes()函数获取网页里的相应节点。
最后我们用html_text()函数获取标签内的文本信息。

2.使用jiebaR进行分词,统计词频

1
2
3
4
5
library(jiebaR)
engine_s<-worker(stop_word = "stopwords.txt")#初始化分词引擎并加载停用词。
seg<-segment(position,engine_s)#分词
f<-freq(seg) #统计词频
f<-f[order(f[2],decreasing=TRUE),] #根据词频降序排列


这是排序之后前6个。

3.使用wordcloud2包进行可视化。

使用jiebaR包统计完词频之后,就很容易使用wordcloud2包进行可视化。

1
2
3
library(wordcloud2)#加载包
f2<-f2[1:150,] #总共有2000多个词,为了显示效果,我只提取前150个字
wordcloud2(f2, size = 0.8 ,shape='star') #形状设置为一颗五角星


  作为一名爱国爱党人事,我们都知道我们的国旗是五星红旗,所以就用这颗星来代表我的爱国之心吧。那也许就有人要说,你也体现以下你的爱党之心吧。行,没问题,接下来我就来体现一下我的爱党之心。我要把这个五角星形状改成一张党徽形状。只怪自己PS技术太差,所以在网上找了下面这张图,找这张图的目的是要将绘制词云图形设置为一个党徽。




1
2
path<-"D://dang.png"#图片路径
wordcloud2(f2,size = 1.3,figPath =path)#绘图,如果形状和图片形状不太像是,可以调节size值


  怎么样,是不是和党徽形状基本一样。不过细心的小伙伴估计会发现“发展”这个词没了,它可是词频最高的一个词啊。我认为原因是我们这个党徽图片中各个边太细,“发展”这个词的词频有太高于其他词频才导致这张词云里面没有“发展”这个词。“发展”的词频是125,差不多是“改革”的词频是68的两倍.为了验证这个想法,我决定选一个边更细的形状。

letterCloud(f2, word=”党”,size = 1) #Word参数用于设置绘制词云形状为“党”这个字。


刚才还有的“改革”,“推进”,“经济”等词现在也没有了。所以证明我的说法基本没错。于是我就P了下面这一张图。把词绘制在图片黑色的地方,白色党徽的地方留下。


1
2
3
path3<-"D://3.png"
f3<-f[1:1000,] #因为图片面积比较大,所以这次选前1000个词
wordcloud2(f3,size = 1.7,figPath =path3,background='black') #background用于设置背景颜色,为了便于观察我设置为黑色

  这下好了,刚才丢失的词现在已经回来了,就是不知道中间那块黑色党徽那块你注意到没有。所以在这个给各位小伙伴提个醒,在用这个包绘制词云时,背景图片不要选择那些整体边太细的图,否则会影响结果。

4.总结

  现在,我来总结一下,大家都知道我们党执政兴国的第一要务是——发展。与我们分析的一致。在过去的一年,我们党仍然以发展作为第一要务,推进“一路一带”建设,加快创新发展,大力深化改革开放,明确政府职能,不断完善社会体制,不断提高服务能力,注重保障和改善民生,增加就业机会,实现经济的稳定增长。推动各族人民在全面建成小康社会进程中实现共同发展繁荣。