前言:我对数据分析很感兴趣,这是第一次尝试把自己的学习过程记录下来,希望能帮助到其他有类似想法的朋友少走一点弯路。
初步想法产生:我拜读了知乎-何明科老师的答案。其中他提到对一个行业兴衰的答案进行了分析。我看了他的分析,很感兴趣,想自己做着玩。
大的思路就是,分析已有的专业回答网站以及社区上的答案,得出一些有价值的分析。因为我现在直接去抓取全网的数据我也没有那个能力。反而我觉得分析一些问答网站,尽管他们已经是对他们的原始信息的总结了,我对他们这些回答的再分析,或许也有一定的发现。
主要针对一些我感兴趣的经济之类的回答(以后也可能会扩展到其他领域,比如大家关心的婚恋之类的),问题的回答数和关注者要足够多,这样分析的数据量较为充足,分析出来的结果有较高的参考价值。我想这个方法可能与社会上大公司直接爬取全网数据来分析要低档次一些。但我认为也有自己独特的价值。因为知乎等网站上的专业回答者本身其实就可以视为“专家”,而对大量专家的回答的分析,应该可以一定程度上揭示某些问题的真实情况,至少能够从整体反映部分专家对这个问题的见解。此外,对知乎问题答案的分析,再重新发布到知乎该问题中,我想也可能会给后来的读者对一个知乎问题的答案概况(这个问题下方可能有有几千个回答)有更方便的了解。当然,这只是我目前的初步感觉,具体怎么样,还要看我做出来的效果到底如何。
初步分析思路:抓取某个答案下的所有回答,利用自然语言来分词、分析频率、赞数等一系列数据特征,然后结合具体答案,得出自己的分析结论。
完成以上工作需要两个大的步骤:
1、爬虫爬取知乎某个问题下的所有答案、评论数、赞数
2、分析:利用自然语言处理来分析答案中的关键词频率;分析答案的特征分布(赞数分布、评论数分布);分析关键词和赞数关系;异常点分析:得出结论
4月3日经过一系列筛选后,找到一个我比较满意的知乎爬虫。对作者写出如此好的知乎爬虫表示感谢!
其官方地址如下:http://zhihu-oauth.readthedocs.io/zh_CN/latest/index.html
安装很简单
首先你必须有python+pip环境,我之前就安装了canopy(python2.7) 环境(windows)。canopy可以自己去google,是一个python的集成IDE环境。不过只有python2的版本。
如果需要py3,可以用anaconda集成环境。这两款都支持Linux和windows。
管理员身份打开cmd窗口输入以下命令即可安装完毕
pip install zhihu_oauth
按照作者教程,编写第一个抓取答案的demo程序如下
# coding=utf-8 from __future__ import unicode_literals, print_function import os from zhihu_oauth import ZhihuClient TOKEN_FILE = 'token.pkl' client = ZhihuClient() if os.path.isfile(TOKEN_FILE): client.load_token(TOKEN_FILE) else: client.login_in_terminal() client.save_token(TOKEN_FILE) # import、构建 client 以及登录知乎的代码省略 #修改括号里面的数字参数即可,我抓取的是问题“https://www.zhihu.com/question/39957694”眼看着自己所在行业日渐衰退是怎样一种体验? question = client.question(39957694) print(question.title) for answer in question.answers: print(answer.author.name, answer.voteup_count)#命令行中会输出每个答案的作者名和赞数 answer.save(question.title,answer.author.name+'-'+str(answer.voteup_count))#第一个参数是答案的存放目录名,第二个每个答案的文件名运行该demo,第一次时需要输入知乎账号和密码
随后就可以下载到所有答案。如下图所示。
每个html的题目是答案的作者名和该答案的赞数。
而html文件内容如下
接下来就是学习如何分析这些答案了。
这里再次感谢该爬虫的作者,虽然目前还不知道作者的名字,也正是这些优秀大神们的无私分享,帮助和鼓励了我们继续前行。
接下来是分析,首先是自然语言分析。写在下一篇了。