入坑知乎三年有余,数月前灵光闪现,做个网页爬虫,专爬知乎下的精华回答,作统计分析。
以下,即是此项目的分析结果,希望能从另一个角度呈现出不一样的知乎。
# 代码
"talk is cheap, show me the code!" --屁话少说,放码过来。心急的朋友可以直接戳链接看源码,用的是Python3:
[https://github.com/SmileXie/zhihu_crawler](https://github.com/SmileXie/zhihu_crawler)
# 算法简述
### 1.爬虫算法
以[根话题的话题树](https://www.zhihu.com/topic/19776749/organize/entire)为启始,按广度优先遍历各子话题。话题的遍历深度为3。解析各话题下的精华回答。
![](https://box.kancloud.cn/2016-05-29_574a961d1d4ef.jpg)
知乎的话题树.png
### 2.收集数量
目前收集的信息共计50539个精华回答。
### 3.分析内容
* 精华回答的点赞数,答案长度等;
* 答题用户的id,点赞数,地区,性别,学历,学校,专业等;
# 统计结果
### 1.匿名答主
50539篇精华回答中,有3308篇的回答者选择了匿名发布答案。
![](https://box.kancloud.cn/2016-05-29_574a961d30b69.jpg)
精华回答答主匿名情况.png
### 2.答主性别
男15740,女5749.是否从一个侧面印证了知乎上程序员占了很大的比例.
![](https://box.kancloud.cn/2016-05-29_574a961d42428.jpg)
精华回答答主性别.png
### 3.答主受教育情况
按答主的所在(毕业)学校统计,TOP10的学校是:
![](https://box.kancloud.cn/2016-05-29_574a961d53467.jpg)
答主学校TOP10.png
可以看出,中国的顶尖高校对知乎的精华回答贡献颇多。
按答主所在的专业统计,TOP10专业是:
![](https://box.kancloud.cn/2016-05-29_574a961d64bfa.jpg)
答主专业TOP10.png
果然是程序猿的天堂。(上面的数据,我针对“计算机”和“金融”的数据做了处理,把“计算机”“计算机科学”“计算机科学与技术”合并为“计算机”,把“金融”和“金融学”合并为“金融”)
### 4.精华回答的赞同数
按精华回答所获得的赞同数落在的区间,做统计
![](https://box.kancloud.cn/2016-05-29_574a961d766f2.jpg)
各精华回答获得的赞同数落在的区间.png
| 赞同数区间 | 此区间内的精华回答数量 |
| --- | --- |
| 0~4999 | 46546 |
| 5000~9999 | 2623 |
| 10000~14999 | 713 |
| 15000~19999 | 305 |
| 20000~24999 | 154 |
| 25000~29999 | 94 |
| 30000~34999 | 44 |
| 35000~39999 | 22 |
| 40000~44999 | 16 |
| 45000~49999 | 8 |
| 50000~54999 | 4 |
| 55000~59999 | 3 |
| 60000~64999 | 3 |
| 65000~69999 | 0 |
| 70000~74999 | 2 |
| 75000~79999 | 1 |
| 80000~84999 | 0 |
| 85000~89999 | 0 |
| 90000~94999 | 1 |
| 95000~99999 | 0 |
可见,大多数精华回答获得的赞同数是处于0~4999范围内的。
目前统计到的最高票回答是这篇:[《哪些素质很重要,却是读书学不来的》中肥肥猫的回答](https://www.zhihu.com/question/28626263/answer/41992632),共获得了91433个赞同。
### 5.回答字数
如果按以下标准将精华回答按字数分类:
| 字数 | 分类 |
| --- | --- |
| 0~99 | 短篇 |
| 100~999 | 中篇 |
| 1000~9999 | 长篇 |
| 10000以上 | 超长篇 |
那么,精华回答的字数分布如下:
![](https://box.kancloud.cn/2016-05-29_574a961d8a344.jpg)
精华回答的字数分布.png
看来各位答主对没少在知乎上码字。长篇的数量甚至超越了短篇和中篇。
目前收集到的最长字数回答是:[《人究竟能抠到什么程度》中郭永年的回答](https://www.zhihu.com/question/31963067/answer/54079066),答主扬扬洒洒写了98904字,敢情是在知乎上写小说了啊。
# 后记
作为一个对Python和C都有使用的程序员,在开发的过程中不断地领略着这两种语言的巨大差异。
Python把对开发者友好做到了极致,牺牲了性能。
C把性能做到了极致,牺牲了对开发者的友好。
这个项目只用了500行Python,如果换作500行C,估计只能完成上述功能的1/10吧。
最后再贴一遍源码:
[https://github.com/SmileXie/zhihu_crawler](https://github.com/SmileXie/zhihu_crawler)
- Python爬虫入门
- (1):综述
- (2):爬虫基础了解
- (3):Urllib库的基本使用
- (4):Urllib库的高级用法
- (5):URLError异常处理
- (6):Cookie的使用
- (7):正则表达式
- (8):Beautiful Soup的用法
- Python爬虫进阶
- Python爬虫进阶一之爬虫框架概述
- Python爬虫进阶二之PySpider框架安装配置
- Python爬虫进阶三之Scrapy框架安装配置
- Python爬虫进阶四之PySpider的用法
- Python爬虫实战
- Python爬虫实战(1):爬取糗事百科段子
- Python爬虫实战(2):百度贴吧帖子
- Python爬虫实战(3):计算大学本学期绩点
- Python爬虫实战(4):模拟登录淘宝并获取所有订单
- Python爬虫实战(5):抓取淘宝MM照片
- Python爬虫实战(6):抓取爱问知识人问题并保存至数据库
- Python爬虫利器
- Python爬虫文章
- Python爬虫(一)--豆瓣电影抓站小结(成功抓取Top100电影)
- Python爬虫(二)--Coursera抓站小结
- Python爬虫(三)-Socket网络编程
- Python爬虫(四)--多线程
- Python爬虫(五)--多线程续(Queue)
- Python爬虫(六)--Scrapy框架学习
- Python爬虫(七)--Scrapy模拟登录
- Python笔记
- python 知乎爬虫
- Python 爬虫之——模拟登陆
- python的urllib2 模块解析
- 蜘蛛项目要用的数据库操作
- gzip 压缩格式的网站处理方法
- 通过浏览器的调试得出 headers转换成字典
- Python登录到weibo.com
- weibo v1.4.5 支持 RSA协议(模拟微博登录)
- 搭建Scrapy爬虫的开发环境
- 知乎精华回答的非专业大数据统计
- 基于PySpider的weibo.cn爬虫
- Python-实现批量抓取妹子图片
- Python库
- python数据库-mysql
- 图片处理库PIL
- Mac OS X安装 Scrapy、PIL、BeautifulSoup
- 正则表达式 re模块
- 邮件正则
- 正则匹配,但过滤某些字符串
- dict使用方法和快捷查找
- httplib2 库的使用