基于博客园博问标签的词云分析

一、前言

前段时间看到一篇文章,对国外某编程技术论坛文章标签进行爬取分析,得出了该论坛周一到周末各个技术分类的热门程度,分析哪些技术在周末用的多,再根据人们周末通常研究学习自己感兴趣的技术,进而得出未来某些技术发展趋势。受到这一启发,我也想分析分析国内这方面的趋势,于是找到了比较火热的博客园(www.cnblog.com),根据博问里面大家提问题的标签,分析一下在博客园上体现出来的技术趋势。

多图预警

基于博客园博问标签的词云分析_第1张图片

1

二、爬取标签信息

(一)首先分析网址信息。

我们打开一个问题,看一下网址

https://q.cnblogs.com/q/91307/

对应内容为

基于博客园博问标签的词云分析_第2张图片

图2

通过几个问题可以发现,对于不同的问题,网址主要是后面的数字不同,而且数字是根据问题的序列顺序排列的,那么我们就可以构造出爬虫的网址

https://q.cnblogs.com/q/编号

 

(二)其次分析网页内容,打开源码

基于博客园博问标签的词云分析_第3张图片

图3

基于博客园博问标签的词云分析_第4张图片

4

上图标记的为我们要提取的信息:问题、标签和时间。

利用bs4库提供的方法分别提取出来问题、标签和时间,并保存在CSV文件里留作后面分析使用。

其中标签提取有两种方法,一种是利用图3中方框内的

    Action action</span><span style="font-family:SimSun;">获取方法名称问题</span><span style="font-family:Calibri;">_</span><span style="font-family:SimSun;">博问</span><span style="font-family:Calibri;">_</span><span style="font-family:SimSun;">博客园</span><span style="font-family:Calibri;">

    技术Actionaction 获取方法名称问题" />

利用bs4获取两个字符串s1(获取方法名称问题_博问_博客园)s2(c#,.net技术Action action 获取方法名称问题)

后,取差集获得问题s3(Action action 获取方法名称问题),再利用s2s3差集获得标签s4c#,.net技术)

另一种是在图3中获得标题行“Action action 获取方法名称问题_博问_博客园”,再去掉后几个字符“_博问_博客园”,获得问题。在图4中利用类似方法获取标签。

 

时间的提取用bs4把下面内容

基于博客园博问标签的词云分析_第5张图片

5

提取成字符串,再截取字符串获得时间。之后再将时间转化为星期。

代码如下:

基于博客园博问标签的词云分析_第6张图片

6

基于博客园博问标签的词云分析_第7张图片

7

基于博客园博问标签的词云分析_第8张图片

8

完整代码可在GitHub上面找到。

 

(三)获得的数据

获得的数据保存在CSV文件中,如下图所示:

基于博客园博问标签的词云分析_第9张图片

9

本次获取的是近一年的数据,共计8000+条标签。由于博客园网站只能够查询近一年来的数据,所以这个数据量相对来说还是有些少。而且由于网站原因,没有89月分的数据。下次试试CSDN网站的数据。

 

三、数据分析

把数据传入数据分析软件,生成词云。

(一)近一年来的总体概况(2016.032017.02

基于博客园博问标签的词云分析_第10张图片

10

近一年来,排在前面的分别是C#、Java、asp.net、.net、JavaScript等。

(二)各月份分布情况(2016.032017.02各个月份)

 

基于博客园博问标签的词云分析_第11张图片

 

基于博客园博问标签的词云分析_第12张图片

 

基于博客园博问标签的词云分析_第13张图片

 

基于博客园博问标签的词云分析_第14张图片

 

基于博客园博问标签的词云分析_第15张图片

 

基于博客园博问标签的词云分析_第16张图片

 

基于博客园博问标签的词云分析_第17张图片

 

基于博客园博问标签的词云分析_第18张图片

 

基于博客园博问标签的词云分析_第19张图片

 

基于博客园博问标签的词云分析_第20张图片

以上几个月份的分析中,C#一直稳居中央,7月份nodejs火了一阵子。Python有增长的趋势。怎么看着Android在减少呢?

(三)一周七天内分布情况(周一到周日)

基于博客园博问标签的词云分析_第21张图片

可以看出,周五问的问题最多,周日比较少,周一最少,是大家都还没有回到工作状态吗?!

(四)一周内词云分析

基于博客园博问标签的词云分析_第22张图片

 


 

基于博客园博问标签的词云分析_第23张图片

 

基于博客园博问标签的词云分析_第24张图片

 

基于博客园博问标签的词云分析_第25张图片

 

基于博客园博问标签的词云分析_第26张图片

 

基于博客园博问标签的词云分析_第27张图片

基于博客园博问标签的词云分析_第28张图片

周一和周五用Python的人表较多。其他数据基本没有变化。看来程序员普遍周末加班比较多吧,因为工作日和休息日各种问题占得比例变化并不大,可以认为他们在周末还在为工作忙碌着,而不是学习新知识,给自己充电。

四、小结

(一)博客园博问用户量并不大,导致数据有限。

(二)C#、Java、JavaScript、.net、asp.net等技术还是主流

(三)国内程序员在休息日的时候也没能逃脱工作的压力,这是病态的加班文化吧。


你可能感兴趣的:(技术·前沿,代码·积累,python,大数据,爬虫,可视化,技术趋势)