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

一、前言

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

多图预警

1

二、爬取标签信息

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

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

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

对应内容为

图2

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

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

 

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

图3

4

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

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

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

    <title>Action action获取方法名称问题_博问_博客园</title>

    <metaname="keywords" content="c#,.net技术Actionaction 获取方法名称问题" />

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

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

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

 

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

5

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

代码如下:

6

7

8

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

 

(三)获得的数据

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

9

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

 

三、数据分析

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

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

10

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

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

 

 

 

 

 

 

 

 

 

 

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

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

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

(四)一周内词云分析

 


 

 

 

 

 


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

四、小结

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

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值