前阵子,一条微博成功引起了我的注意:
正好我们也在做网站的数据分析案例,不如就用 Python 来分析下,虎扑你这个“直男论坛”到底是怎样的?
数据来源
这个案例我们几个月前就有计划了,所以数据是之前采集的。
时间:2019.3.16-2019.6.22(虎扑论坛只显示近三个月的帖子)
数据:板块内容:共101.4w个帖子的概要数据帖子内容:回复数大于 200,浏览数大于 5w 的4.4w个帖子用户页面:29.9w(详细帖子数据中发帖回帖用户),其中 10w 有效数据(剩余 17.6w 未填写,1.4w 填地球)
说明一下,我们这里不可能获取到虎扑的全部数据,但作为一个抽样统计已经足够。其中帖子的详细内容由于请求量很大,我们就选取了其中回复和浏览都比较高的那部分帖子作为分析样本。
接下来就让我们来看一看详细的数据情况:
板块
虽然虎扑名义上是个篮球论坛,但步行街(无主题闲聊区)的帖子占据了半壁江山。对比之下很悲凉的是中国足球论坛,基本没啥话题。
尽管主题数不如步行街,但看平均回帖数,篮球论坛还是名副其实。
发帖
看每天日间发帖时间的分布,两个高峰:上午10点(上班摸鱼)和晚上21点(吃过饭躺床上)。上午高峰还有个原因,就是NBA比赛都是这个时间段转播的。
这是3个月来每天发帖总数的变化趋势,看得出在稳步上升。知道曲线上为啥会有定期的波峰吗?通常都是精彩比赛场次的日子。图上3个峰值的日子分别对应:火箭vs勇士、猛龙vs勇士、勇士vs猛龙 三场比赛。
热门帖子的浏览与回帖数分布。可以看出一个现象:浏览量大的贴,回帖数通常也很高;但回帖多的帖就未必都会有高浏览量(高回帖低浏览的基本都是抽奖贴)。
用户
尽管有一半以上的用户没有在资料里选择性别,但从填写的这部分用户来看,“直男论坛”实锤没跑了。
这是一张声望>8000的用户分布散点图(在交互版本上会看得更直观,文末有地址),比较突出的是张佳玮·信陵(声望最高)、视频综合站(发帖最多)
而从这张注册/在线时长的用户分布图上可以看到,“视频综合站”的在线时长却是很少的,可见这应该不是一个真人号。
从用户注册时间上来看,每年的新增用户都在上涨,2014和2017年是虎扑增长较快的两年。
另外我们统计了用户声望和等级的前50排行,声望最高:张佳玮·信陵,等级最高:登等瞪等凳。图略,可详见动态图表演示页面。
地区
东部和南部沿海省市JRs 的数量比较多,另外就是北京和四川。
全球范围来看,美国要远高于其他国外地区。(这里为了国外区域显示效果而降低了颜色范围,实际美国的用户和国内差了2个数量级)
各地区用户的平均在线时长,上海JRs 最能肝。不过,平均数是可能被一些个别用户把数据拉高的,所以我们还加了中位数的统计,可以看到湖南的233是最高。
等级中位数,又是湖南第一。
声望中位数,还是湖南。
发帖中位数,依然是湖南……
回帖中位数,不用我说,你们猜到是哪里了吧?
词云
最后,我们来看下虎扑 JRs 这三个月的帖子中频率最高的词汇是什么:
项目介绍
回到技术层面,关于这个项目的实现,简单说下思路:
项目思路
- 分析虎扑论坛页面,评价可获取数据,确定分析目标;
- 使用了 requests 和 scrapy 抓取相应数据, 并使用 pymongo 保存;
- 使用可视化工具 pyecharts,对数据进行可视化处理。
- 整理分析。
运行环境
- python 3.7
- windows 10
- jupyter notebook
运行依赖包
- requests
- pyecharts
- pymongo
- scrapy
- jieba
- wordcloud
关于项目的详细说明,我们放在了开发文档里,连同交互演示页面一起提交在了 github 上。需要源码的同学可在公众号(Crossin的编程教室)里回复关键字虎扑
原始数据因为较大,没有放在项目中,参与“码上行动”的同学如果想要拿来练习数据分析,可以在群里问助教索要。
查看交互演示页面也可把此地址复制到浏览器里访问,这是github在线渲染HTML页面的功能 (数据量大,在线加载会有点慢,手机流量慎入):
对此类分析感兴趣还可看下之前的案例:B站用户行为分析非官方报告
本文代码由实训生 清风小筑 完成
----
更多干货内容,欢迎搜索并关注:Crossin的编程教室
一起学,走得远!