近段时间小楚在研究Python在量化投资的应用,顺带发现了Python的爬虫功能真的是非常强大,抓取微博、新浪新闻、豆瓣各种APP的海量数据真的是不费吹灰之力。
知乎也算是国民级的APP了,日活跃用户数少说也在千万以上,而且知乎的回答跟百度知道不一样,基本上知乎的回答都是水平比较高、逻辑性很强的,参考意义非常大。那么你肯定很想知道,能回答出这么高水平答案的用户都是什么人啊?他们有什么共同的特征吗?
近日,知乎给小楚推送了一个问题:男生长得好看是一种什么体验?点进去发现每个回答里面都是帅到爆的小哥哥的图片,这个问题下共有8284条回答,几万张靓仔图片,刷得小楚鼻血都要流出来了。
看完帅哥后,小楚觉得不够过瘾,既然知乎都推了帅哥,那我雨露均沾肯定要看看漂亮的小姐姐啊。于是,我又去找到了知乎上另一个问题:女孩子长得漂亮是种什么体验。这个问题下总共有3000个回答。看到第一个回答的第一张照片,小楚就hold不住了。。。
来自知乎用户ID:勾芡兑水
看完后,小楚肾上腺素飙升久久不能自已,积极性一下被调动起来,决定用Python抓取这8000位帅哥和3000位美女的用户信息,包括知乎昵称、一句话简介、职业信息等,看看长得好看的人都有什么共同特征。
独乐乐不如众乐乐,小楚这就教各位绅士们怎么用Python进行抓取,小白也不要紧,包会。
1、安装Python软件
我们首先下载anaconda,下载地址可以在清华大学镜像网站下载最新日期的exe安装包,比官网速度快得多。
下载安装后接着打开里面的jupyter notebook,在输入框里输入:pip install zhihu_oanth,完成后,你就已经配置好了抓取知乎所需一切条件了。
2、登陆你的知乎账号
输入以下代码
然后将代码里面的手机号换成你自己的知乎手机账号,密码换成你自己的账号密码。接着点击运行,此时会出现一个框要你输入验证码,一般你去检查用户文件夹,会发现多了一张验证码图片文件,输入该图片上的验证码,回车搞定。
3、抓取所有回答和用户信息
(代码比较长,各位请配合放大镜阅读)
运行之后,你就得到了男生长得帅是怎么样的体验下的所有8000个回答、赞数和8000位答主们的用户特征,包括昵称、简介等。
然后你再输入df.to_excel(‘beautifulboys.xlsx’),将8000个回答全部导入一张Excel表里。
4、将用户昵称和简介做成词云的形式
我们提取Excel中的用户昵称和简介,看看帅哥们都喜欢怎么取名字,以及他们的简介有什么共同的地方。
接着,我们就有了惊喜的发现
帅哥们的词云:
我们看到帅哥们的昵称里都喜欢用“先生”、“一只”,不少靓仔还喜欢用“少女”呢!(不好意思,我好像明白了什么)
然后,对提取到的所有简介做成词云。
果然,简介的信息量价值就比较大了。从上面的词云我们发现,知乎长得帅的男生主要集中在学生,尤其是大学生里面,这也不难理解,毕竟20多岁才是男生的颜值的巅峰期,30一过就成了油腻大叔了不是嘛。
其次,比较惊喜的是,我们看上图发现帅哥在设计师行业分布也比较多,看来大家以后要去找靓仔,可以多去设计公司逛逛。
将抓取代码中的ID替换成长得漂亮是什么体验问题的ID后,我们得到了美女们的词云特征:
美女们的词云:
知乎美女的昵称还是喜欢用“猪猪”、“可爱”居多,着很符合精致的她们。
而从用户简介词云看出,知乎美女们也是学生居多,职业比较多地集中在教师、设计师行业。
看来,设计师行业的确比较容易出帅哥和美女,两个词云里面都有设计师这个关键词,毕竟在常人印象里设计师都是比较严苛和挑剔的,如果对自己的颜值没有信心,也很难设计出优美的作品来!