千万知乎用户数据分析报告
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了千万知乎用户数据分析报告相关的知识,希望对你有一定的参考价值。
参考技术A最近爬取了知乎1000万的用户数据,耗时一周。
使用 ElasticSearch + Kibana 实现数据存储,可视化。
数据爬取时间为 2019年7月 (3-9)日
抓到的数据大部分都是资料不完善,以下分析会过滤掉资料为空的那部分。
涉及到性别:-1:未知,0:女, 1;男
本文思路参考 这里
可以看到北京上海用户数量领跑其它城市,所有城市都是男用户稍占多一点。出现了深圳,深圳市 还有 广州,广州市,因为在知乎的个人资料中,居住地这个选项是手动填写而不是选择。
(这里由于kibana用的不熟,暂时不知道怎么把合并,欢迎知道的朋友告知)
可以看出互联网行业一骑绝尘,领先第二名一倍;而第二名计算机软件也是兄弟行业。比较有意思的是以行业划分的话,有比较多行业女性数量占优(高等教育、临床医学、创意艺术、财务、法律、基础教育、教育、广播电视、广告、培训)。而反观计算机软件、电子游戏、机械设备、电子电器、计算机硬件这些行业男性数量大幅占优。比较意外的是有这么多人从事电子游戏行业,超过了很多传统行业(当然有可能这个职业的人在知乎上比较活跃)。
有了行业分布,我们顺便再看看按照职业划分如何。与参考文章不同的是,现在知乎上学生占比最多,可能是知乎当前目标群体为学生,加大校园推广力度。这里我理解是资本入股后的营收压力,使知乎选择了这样的战略。(另外软件工程师,前端,程序员和算法工程师那夸张的男女比例是什么鬼=.=)
可以看到各高校间的差距并不是特别明显,跟现居城市相对应,北京的清北在前三占据两个席位。杭州在城市中排第三,浙大的学子功不可没。比较有意思的是 克莱登大学(“克莱登大学”原本是钱钟书先生小说《围城》里虚构的骗子学校),另外 中国传媒大学 是前50里边唯一女生数量比男生多的学校。
看完学校,我们最后来看一下专业分布。计算机相关行业占据绝对优势,我想到原因有二:近年来市场对计算机相关人才需求巨大;同时计算机相关人员玩知乎占比较大。法学在前排是让我比较意外的。
看了那么多各种类型的分布,我们来关注一些不一样的
这里列出了关注者数量前30的用户,第一知乎日报应该是知乎官方推荐的账号,张佳伟,丁香医生紧随其后。刘看山也是知乎官方账号,关注者数量似乎还在猛涨,从拉取数据到我写此文几天时间,关注数量涨了20w。轮子哥惊人的22k+回答数显得格外活跃(或许是机器人回答的,谁知道呢。另外经统计轮子哥是目前知乎上回答数量最多的)。
再来看一下被赞的数量最多的有哪些人
可以看到张佳伟,丁香医生还是前排,轮子哥屈居第三。后面又好多用户回答数量并不多,同样收获了好多赞。看看这里面有没有你关注的人吧~
再来对比一下哪些高校被赞数量最多。可以看出清北,浙大,复旦,上交,武大等Top N 学校影响力还是比较大的。另外克莱登大学很顽皮的排到的第三。
看了那么多柱状图,搞个饼图来看一下被关注者数量分布,看看自己在知乎属于什么水平
可以看到大部分知乎用户是没人关注的,如果你拥有一个以上关注者,那么恭喜你打败了75.37%的知乎用户。看来还是很多人跟我一样,是一个知乎小透明~
来一个具体的表格
数据里边有个is_active字段,看起来是一个时间戳。我猜这个字段记录的是用户最后一次登录时间,就这么拿来用咯。
这里从红色开始,逆时针依次是10天,一个月,三个月,半年,一年,两年,三年以上。
可以看出三个月内活跃用户大概占比30%,另外有30%用户近三年没登录过了。
最后我们以一张词云结束本文,大伙可以看看自己专业在图中什么位置
截止目前抓取了 9433740 条数据。今天7小时抓了不到5k条数据,数据增长已经非常缓慢了。带宽占用有10M左右,说明还是在不停的爬取,只是爬到的重复率已经很高了。余下的用户可能在不同的一片森林里,与目前爬取数据没有交集,或者根本就是0关注;也有可能数据接近爬完了。目前程序占了6G内存。今晚再观察一下,如果增长速率还是如此缓慢,明天就把它停掉了~
想了解更多爬取心路历程 请看这篇
这是我第一次搞数据爬取,不足之处 请各大神多多指导 。另外关于数据分析,各位可以想想更多不同的维度,得更有多有趣的内容。结尾附上一条抓取的数据样本。
以上,完...
Python分布式爬虫抓取知乎用户信息并进行数据分析
在以前的文章中,我写过一篇使用selenium来模拟登录知乎的文章,然后在很长一段时间里都没有然后了。。。
不过在最近,我突然觉得,既然已经模拟登录到了知乎了,为什么不继续玩玩呢?所以就创了一个项目,用来采集知乎的用户公开信息,打算用这些数据试着分析一下月入上万遍地走、清华北大不如狗的贵乎用户像不像我们想象中的那么高质量。
第一步:首先是爬虫抓取用户信息,能用图解释的绝不多废话:
但是还是得主要说下:
首先:个人感觉,在写一些小的demo时用框架就反而更显得繁琐,所以我没有使用框架,而是自己使用requests来发起请求的。
然后简要解释一下整体流程:
(1)zhihu_login.py 是我模拟登录的脚本,并且在前三步中,理想状态下是利用schedule写一个定时执行框架,定期的更换session.txt中的cookie以供后边的抓取脚本使用,然而非常无奈,
这个方法是我在最后数据抓取基本结束时才想到的,所以没有用到,所以我在抓取数据时使用了代理IP.的。
(2)画图时将错误的将第4步写成了第5步。。。MasterFollowing.py是用来获取用户唯一标示:Token的,原理是:以一个用户的url作为起始地址发起请求,遍历该用户的关注列表,将关注列表中的所有用户Token都存入redis中,
下一次请求时,将会从redis中随机取出一个Token拼接成目标url再遍历关注列表将Token存入redis中,因为理论上从redis中取出一个Token就会向里边塞入少则几十多达上百个Token(视该用户关注人数而定),所以理论上redis中的Token值会越来越多,
且我是以set类型来存Token的,所以会自动去重,非常方便。
(3)activities.py是用来抓取最终用户信息的,它每次redis中获取一个Token,拼接成目标Url,请求用户详情页面,采集到用户信息,将其存入到数据库中。
(4)因为两个脚本之间使用redis进行数据共享,即使有哪个蜘蛛宕掉,也不会造成数据丢失,达到了断点续传的效果。
(5)整个过程中,唯一扯淡的是,知乎似乎对并发数做出了限制,当并发请求超过某一阀值时,请求就会被重定向到验证页面,即使使用了代理IP也没用。不过我想,如果用我最终想到的方法每隔一段时间模拟请求,更换cookie的话,
这个问题有可能会得到解决。
整个爬虫项目我在个人github上边扔着,大家可以去拉下来玩玩,感兴趣的可以帮我把代码完善下,把那个定时更新cookie的代码加上,或者各位有什么更好的方法,也可以告诉我。
github地址:https://github.com/songsa1/zhihu_user_relationship
第二步:使用抓取下的数据进行简单分析
大概抓了20w左右的数据,并且数据分析的代码也在上边那个项目中丢着,制作图表使用了matplotlib.
首先我们知道,知乎个人信息中,所属行业一共分为了14大类、98小类:
我们先看看按照小类来分的话,知乎用户群体主要是做什么的呢?
不出所料啊,互联网行业果然是最多的,当然,也有存在误差的可能,我是以我的知乎用户作为起点来抓取的,我关注的人中基本都是互联网圈中的,这样传递下去,采集到的数据中IT圈中的人估计会多一些,不过窥一斑而知全豹,真实情况估计也差不太多。
这次按照14大类来瞅一下:
依旧是高新科技位居第一啊,教育行业和服务行业紧随其后。
然后我们再来看看知乎用户群体的性别比例:
果然男性用户占据了一半还多,女性用户只占了34%,当然还有14%没有填性别的外星人。
我们一直说逼乎贵乎,一听起来就很有档次的感觉,不负众望,知乎用户群体的文化程度还是非常高的,果然清华北大遍地走,985、211不如狗啊,有图为证(词云中字体越大表明权重越大):
最后我们来看看知乎用户群体大概居住地,目测北上广等一线新一线比较多:
想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python
以上是关于千万知乎用户数据分析报告的主要内容,如果未能解决你的问题,请参考以下文章
用Java+Redis+ES+Kibana技术对数百万知乎用户进行了数据分析,得到了这些...
我用Java+SeimiCrawler+Redis+ES+Kibana技术对数百万知乎用户进行了数据分析,得到了这些...