爬取知乎60万用户信息之后的数据分析

简介:

使用 Java+Elasticsearch+Kibana 爬取了知乎 60 万用户数据,做了简单的可视化分析。

项目源码 GitHub – webporter

动机

在知乎上看到有个叫 @路人甲 的大神每隔一段时间就爬爬豆瓣/B站等等网站,做了很多有意思的分析,加上之前因为实验室项目接触过 Nutch,浅尝辄止了,所以一直想好好玩玩爬虫。

网上 Python 的爬虫教程很多,而自己的主语言是 Java,本着宣传 Java,以练促学的目的,我使用 Java 爬取了知乎 60 万用户信息,主要想看看知乎上妹子多不多啊/是不是都是基佬啊,标配常青藤/年薪百万是不是真的啊,等等。

思路

为了保证数据的质量,避免爬到一些僵尸号什么的,我选择爬取关注列表而非粉丝列表。我随机挑选了一位粉丝过千的优秀回答者作为起始,爬取他的关注列表,再对列表中的每个人爬取其关注列表,以此类推……

下载了大概 7 个小时,爬了 40 多万用户的关注列表,拿到了 10G 的数据,如图所示:

爬取知乎60万用户信息之后的数据分析

理论上有 800 多万用户,可惜有很多重复的,去重后将数据导入 Elasticsearch,得到 60+ 万用户数据:

爬取知乎60万用户信息之后的数据分析

数据验证

接下来简单看看下载下来的数据靠不靠谱,随手在知乎和我的 Kibana 分别搜了下轮子哥 @vczh

爬取知乎60万用户信息之后的数据分析

爬取知乎60万用户信息之后的数据分析

可以看到,连同名的都搜出来是一样的,数据没啥问题。

关心的数据

然后使用 Elastichearch 的聚合查询配合 Kibana 对数据进行可视化展示,我主要分析了下面几个问题:

  1. 性别分布
  2. 粉丝最多的用户top10
  3. 员工最多的公司top10
  4. 校友最多的学校top10
  5. 人数最多的地方top10
  6. top10行业分布
  7. top10职业分布

图中涉及性别的, 1 表示男,0 表示女,-1 表示不男不女

性别分布

爬取知乎60万用户信息之后的数据分析

可以看到知乎男性人数过半了,比女性和未知性别加起来都多。

粉丝最多的用户top10

爬取知乎60万用户信息之后的数据分析

粉丝数前 10 的依次是 @张佳玮,@李开复,@黄继新,@周源,@yolfilm,@张亮,@张小北,@李淼,@葛巾,@采铜。最多的 120 万粉丝,第十也过 60 万了。不过前十里好几个都是知乎员工,有黑幕的嫌疑吧?

员工最多的公司top10

爬取知乎60万用户信息之后的数据分析

可以看到 BAT 全部上榜了(乱入了一个学生什么鬼?),仅接着是网易,华为,谷歌,微软,美团。都是牛逼哄哄的互联网相关企业,看来国企和实体企业比较低调,不在知乎填公司信息啊。

另外华为的男女比简直不能看啊,妹子那么少,想去华为的单身狗们需要好好考虑一下了。

校友最多的学校top10

爬取知乎60万用户信息之后的数据分析

差强人意,校友人数排名前十的全特么是 985 啊,清北复交浙全部上榜,俨然中国大学排行榜。看来知乎标配不是常青藤,而是 985 嘛。另外可以看到,我科(倒数第三个)的男女比在这几个里面确实感人,难怪我现在还单身…

人数最多的地方top10

爬取知乎60万用户信息之后的数据分析

北京独领风骚,上海紧随其后。另外知乎居然把深圳和广州根据有没有“市”标记为了两个城市,简直坑爹,我也懒得二次处理了。综合来看,北上广深杭,主要集中在这五个城市,基本也是我国互联网企业分布最多的几个城市。

top10行业分布

爬取知乎60万用户信息之后的数据分析

可以看到,互联网和计算机软件两个加起来就占了半数以上,要是算上电子商务和电子游戏等基本是程序员的天下了,所以知乎上程序员偏多,IT 从业者占主流啊。

另外互联网的男女比大概 2:1 的样子吧,法律,信息传媒和创意艺术的男女比比较均衡,大概五五开。

top10职业分布

爬取知乎60万用户信息之后的数据分析

将近四分之一是产品经理,创始人和 CEO 也不少,比工程师还多,学生也占一定比例。另外除了运营和编辑的男女比差不多,其它都是男多女少啊。

结语

从这 60 万用户数据可以看出,知乎的主要群体是程序员和学生,平均学历 985 不是黑,是真的!虽然知乎用户远不止 60 万,这些数据分析出来的结果可能有些偏差,但应该也能说明一些问题吧。

最后按照国际惯例,附上源码,GitHub – webporter


本文作者:brianway

来源:51CTO

相关文章
|
5月前
|
数据采集 JSON JavaScript
网络爬虫的实战项目:使用JavaScript和Axios爬取Reddit视频并进行数据分析
网络爬虫是一种程序或脚本,用于自动从网页中提取数据。网络爬虫的应用场景非常广泛,例如搜索引擎、数据挖掘、舆情分析等。本文将介绍如何使用JavaScript和Axios这两个工具,实现一个网络爬虫的实战项目,即从Reddit这个社交媒体平台上爬取视频,并进行数据分析。本文的目的是帮助读者了解网络爬虫的基本原理和步骤,以及如何使用代理IP技术,避免被目标网站封禁。
101 0
网络爬虫的实战项目:使用JavaScript和Axios爬取Reddit视频并进行数据分析
|
机器学习/深度学习 数据挖掘 数据处理
ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理
ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理
ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理
|
机器学习/深度学习 数据挖掘 数据处理
ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理(二)
ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理
ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理(二)
|
机器学习/深度学习 资源调度 数据可视化
ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理(一)
ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理
|
存储 数据采集 SQL
Python3爬取前程无忧数据分析工作并存储到MySQL
Python3爬取前程无忧数据分析工作并存储到MySQL1、导入包import requests #取数from lxml import etree #用xpath解析import pymysql #连接数据库import chardet #自动获取编码 2、获取单页htmldef...
1079 0
|
14天前
|
数据采集 数据可视化 数据挖掘
深入浅出:使用Python进行数据分析
在这篇文章中,我们将探索Python在数据分析中的应用,介绍几个关键的库,如Pandas、NumPy、Matplotlib,以及如何使用它们进行有效的数据处理和可视化。本文旨在为初学者提供一个清晰、简洁的指南,让读者能够快速掌握使用Python进行数据分析的基本技能,并通过一个实例加深理解。不同于其他文章的冗长解释和复杂示例,我们将以最直接、易懂的方式,让你迅速上手,即使是完全没有编程背景的读者也能轻松跟上。
|
6天前
|
机器学习/深度学习 数据挖掘 计算机视觉
python数据分析工具SciPy
【4月更文挑战第15天】SciPy是Python的开源库,用于数学、科学和工程计算,基于NumPy扩展了优化、线性代数、积分、插值、特殊函数、信号处理、图像处理和常微分方程求解等功能。它包含优化、线性代数、积分、信号和图像处理等多个模块。通过SciPy,可以方便地执行各种科学计算任务。例如,计算高斯分布的PDF,需要结合NumPy使用。要安装SciPy,可以使用`pip install scipy`命令。这个库极大地丰富了Python在科学计算领域的应用。
11 1
|
6天前
|
数据可视化 数据挖掘 Python
Python中数据分析工具Matplotlib
【4月更文挑战第14天】Matplotlib是Python的数据可视化库,能生成多种图表,如折线图、柱状图等。以下是一个绘制简单折线图的代码示例: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.figure() plt.plot(x, y) plt.title('简单折线图') plt.xlabel('X轴') plt.ylabel('Y轴') plt.show() ```
12 1
|
6天前
|
数据采集 SQL 数据可视化
Python数据分析工具Pandas
【4月更文挑战第14天】Pandas是Python的数据分析库,提供Series和DataFrame数据结构,用于高效处理标记数据。它支持从多种数据源加载数据,包括CSV、Excel和SQL。功能包括数据清洗(处理缺失值、异常值)、数据操作(切片、过滤、分组)、时间序列分析及与Matplotlib等库集成进行数据可视化。其高性能底层基于NumPy,适合大型数据集处理。通过加载数据、清洗、分析和可视化,Pandas简化了数据分析流程。广泛的学习资源使其成为数据分析初学者的理想选择。
13 1
|
9天前
|
Python 数据挖掘 存储
Python 数据分析(PYDA)第三版(七)(4)
Python 数据分析(PYDA)第三版(七)
33 1