类别
联系我们

地址: 成都市北大街100-102号东座2单元3号(二分所地址)

电话: 028-66529175

手机: 13608197694

邮箱:

联系人: 王琦

 

Python 爬虫 懂球帝App 60万用户分析
发布于:2020-01-11 17:14:37   浏览:21

  懂球帝App之于足球大概就像虎扑之于篮球吧。

  (本来想着多拿一点用户数据的...结果只有十分之一...)

  这个项目所有的代码都是用 Python 实现。

  为了获取用户ID,我的思路是:先获取近期的文章,然后从文章的评论区中获取评论用户的ID。

  首先,我使用抓包工具Charles抓包所需要的各个API:

  其中,获取球队信息的API需要登录,具体请求方法为:在网页版懂球帝上登录自己的账号后,获取Cookie,并将这个Cookie放入headers中再请求这两个API。

  爬取数据我使用的是requests/requests,其中爬取评论区用户ID的时间比较长,而且由于下一页的API是由上一页API返回的,所以只能串行而不能并行。为了稳定性和鲁棒性考虑,还需要有断点继续机制。

  在爬取到60万个用户ID后,使用这些ID来获取各个用户的信息,这个阶段是可以并行的。我有考虑过使用异步爬虫(asyncio 和 aiohttp)来加速,主要参考的是加速爬虫: 异步加载 Asyncio - 网页爬虫 莫烦Python,但后来发现只有60w用户,数据量并不是特别大,就没有这么做。仅仅是将爬虫任务分配到了3台服务器,爬了10个小时就得到了。

  爬取到的所有数据我都存储在本地的 sqlite3 数据库中。

  数据分析阶段,使用pyecharts/pyecharts来进行数据可视化,其中的分词部分使用fxsjy/jieba来完成。

  这些用户中,有 263,960 人为男性♂用户,有 18,227 人为女性♀用户,其余 328,609 人没有填写性别信息。

  再看看懂球帝们所在的地区,首先是国内的分布情况。

  广东的懂球帝数量最多,其次是北京,再次是山东和江苏。

  由于懂球帝App上选择地区时,只能选择图中高亮的地区,所以只比较这些地区的情况。

  这些地区中懂球帝数量最多的是西班牙