29

爬了知乎“沙雕问题”,笑死个人!

 4 years ago
source link: http://developer.51cto.com/art/201911/605622.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

这两天偶然上网的时候,被知乎上一个名为“玉皇大帝住在平流层还是对流层”的问题吸引。

B73YnyA.jpg!web

图片来自 Pexels

本以为只是小打小闹,殊不知这个问题却在知乎上引发了强烈共鸣,浏览次数 500W+,7000+ 关注:

Mn6z6z6.jpg!web

于是乎就激发了去探索知乎上“沙雕”问题的想法,通过 Python 爬取这些问题的内容,浏览次数,关注人数,总结一份权威(搞笑)的“沙雕”问题排行榜!

Anqm22V.jpg!web

数据来源

知乎非常“贴心”地专门有一个问题可以满足我们的需求,出人意料的是这个问题居然有 243 个回答,并且陶飞同学获得了 3W+ 的赞同。

Yb2Ir2a.jpg!web

我们从中爬取了所有回答中出现的问题链接,共用 400 多个问题,其中陶飞就提供了 200+,在此向陶飞同学表示感谢,帮助我们构建了“沙雕数据库”。

这部分代码如下:

import re 
import selenium 
from selenium import webdriver 
import requests 
from bs4 import BeautifulSoup 
import pandas as pd 
import time 
 
driver = webdriver.Chrome() 
driver.maximize_window() 
 
url = 'https://www.zhihu.com/question/37453271' 
js='window.open("'+url+'")' 
driver.execute_script(js) 
driver.close() 
driver.switch_to_window(driver.window_handles[0]) 
for i in range(100): 
     js="var q=document.documentElement.scrollTop=10000000"   
     driver.execute_script(js) 
 
all_html = [k.get_property('innerHTML') for k in driver.find_elements_by_class_name('AnswerItem')] 
all_text = ''.join(all_html) 
 
#all_text = all_text.replace('\u002F','/') 
all_text = all_text.replace('questions','question') 
pat = 'question/\d+' 
questions = list(set([k for k in re.findall(pat,all_text)])) 

获得到了问题的对应的编号后,就可以去各自的页面获取各个问题对应的的标题、浏览数等信息,如下图所示:

ZFzi6z6.jpg!web

这部分代码如下:

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win32; x32; rv:54.0) Gecko/20100101 Firefox/54.0', 
'Connection': 'keep-alive'} 
cookies ='v=3; iuuid=1A6E888B4A4B29B16FBA1299108DBE9CDCB327A9713C232B36E4DB4FF222CF03; webp=true; ci=1%2C%E5%8C%97%E4%BA%AC; __guid=26581345.3954606544145667000.1530879049181.8303; _lxsdk_cuid=1646f808301c8-0a4e19f5421593-5d4e211f-100200-1646f808302c8; _lxsdk=1A6E888B4A4B29B16FBA1299108DBE9CDCB327A9713C232B36E4DB4FF222CF03; monitor_count=1; _lxsdk_s=16472ee89ec-de2-f91-ed0%7C%7C5; __mta=189118996.1530879050545.1530936763555.1530937843742.18' 
cookie = {} 
for line in cookies.split(';'): 
    name, value = cookies.strip().split('=', 1) 
    cookie[name] = value 
 
questions_df = pd.DataFrame(columns = ['title','visit','follower','answer','is_open']) 
 
for i in range(len(questions)): 
    try: 
        url = 'https://www.zhihu.com/'+questions[i] 
        html = requests.get(url,cookies=cookie, headers=header).content 
        bsObj = BeautifulSoup(html.decode('utf-8'),"html.parser") 
        text = str(bsObj) 
        title = bsObj.find('h1',attrs={'class':'QuestionHeader-title'}).text 
        visit = int(re.findall('"visitCount":\d+',text)[0].replace('"visitCount":','')) 
        follower = int(re.findall('"followerCount":\d+',text)[0].replace('"followerCount":','')) 
        answer = int(re.findall('"answerCount":\d+',text)[0].replace('"answerCount":','')) 
        is_open = int(len(re.findall('问题已关闭',text))==0) 
        questions_df = questions_df.append({'title':title,'visit':visit, 
                                            'follower':follower,'answer':answer, 
                                            'is_open':is_open},ignore_index=True) 
        time.sleep(2) 
        print(i) 
    except: 
        print('错误'+str(i)) 

数据分析

在分享出最终的“沙雕排行榜”前,我们首先严肃认真(lixinggongshi)的进行一波分析,主要看一下问题中的关键词。

首先是所有词云的词云:

qyI3qqV.jpg!web

看来这些问题大多是源自于大家对于人生的探索,否则“为什么”,“如果”,“怎么办”也不会出现那么多。

出人意料的是“体验”这个知乎专属 tag 居然并不多,可能是出于对知乎的尊重,和“体验”相关的问题都不会问得那么“沙雕”。

下面把这些助词去掉,再来看下结果:

VBn2euu.jpg!web

这个图看来,读者关注的问题还是很极端:一方面在关注男女朋友“你冷酷、你无情、你无理取闹”这种问题;另一方面却在关注宇宙、地球这种关乎全人类的问题,很符合知乎“人均 985,各个过百万”的人设。

这两个图实际上都是基于一个表情,不知道有没有看出来:

jiU73m7.jpg!web

好吧,其实看不出来才是正常,能看出来的可能现在去知乎提个问题,下期就会上榜。

最后把部分问题做出词云:

YRV3uei.jpg!web

不知道大家能不能看清,说实话我自己是看不清的,也没准备让大家看清,目的就是引出下面真正的排行榜。

22yaMnN.jpg!web

沙雕问题排行榜

通过综合问题观看数,关注数,回答数,关注占比,回答占比,综合得到分数的流量指数和新奇指数,最终获得一个整体的分数。

如下图所示:

RBnuuqZ.jpg!web

听起来是不是很复杂,实际上最终还是通过 10% 的数据+90% 的主观来进行了排名,为大家精选了 15 个最为“沙雕”的问题。

也选取部分网友的回答,问问题的操作诚然很风骚,面对这些“沙雕”问题,认真回答的绝对是风骚 PLUS,特此声明,以下回答来自于知乎网友。

No.15 李白写那么多诗,他自己都会背吗?

veaEnyI.jpg!web

原问题链接:

https://www.zhihu.com/question/276876453

小结:写自己的诗,让别人去背吧,真乃人生最高境界

No.14 猪八戒是黑猪还是白猪?

BV3Qnmb.jpg!web

原问题链接:

https://www.zhihu.com/question/37160000

小结:后经多方考证,证明了猪八戒的黑猪身份,这下子身价进一步暴增,对此我们表示:黑猪白猪,不涨价的猪就是好猪。

No.13 邹市明能一拳把自己打晕吗?

RZzAfij.jpg!web

原问题链接:

https://www.zhihu.com/question/36805199

小结:知乎上各种关于邹市明能打多少人的问题层出不穷,没想到最终还是要向自己动手了!

No.12 生蚝煮熟了还可以叫生蚝么?

iqmI7n7.jpg!web

原问题链接:

https://www.zhihu.com/question/25016659

小结:这个问题就好比有些叫帅帅的人,无论长成什么样,别人都要叫他帅帅!

No.11 被袋鼠暴打是一种怎样的体验?

e6RRVnu.jpg!web

原问题链接:

https://www.zhihu.com/question/27387052

小结:珍爱生命,远离袋鼠,切莫为了一个高赞回答去和袋鼠亲身肉搏,否则可能还没来得及分享“刚编出来的故事”就……

No.10 秃顶的人洗头,应该用洗发水还是洗面奶?

B7RVfiY.jpg!web

原问题链接:

https://www.zhihu.com/question/48119206

小结:希望广大程序员朋友保护好头发,不要有朝一日被邀请回答这个问题!

No.9 如果地球上所有人同时用激光笔指着月亮,月亮会不会变颜色?

eEnUBrN.jpg!web

原问题链接:

https://www.zhihu.com/question/48119206

小结:会不会变色无从考究,但是在月亮变色前,我的眼睛一定会先被闪瞎!

No.8 玉皇大帝住在平流层还是对流层?

Bnqiiez.jpg!web

原问题链接:

https://www.zhihu.com/question/304133742/

小结:这个问题应该就是“一本正经的胡说八道”集大成者,评论区好多相关领域人士进行了认真解答,不过究竟住哪也没搞明白,可能只能只有孙悟空知道答案了!

No.7 把一个变色龙绑在不断变换颜色的灯上,它会不会心力交瘁而死?

VZvmiej.jpg!web

原问题链接:

https://www.zhihu.com/question/32052499

小结:变色龙属于国家级保护动物,很可能还没看到结果,先被带走接受教育!

No.6 如果把皮卡丘的耳朵塞到插座里,皮卡丘会被电死么?

zEjYby6.jpg!web

原问题链接:

https://www.zhihu.com/question/52083864

小结:皮卡丘会不会被电死不好说,但是你会不会被电死还是很清楚的!

No.5 西瓜除了被吃还有什么生存意义?

MF7JbaF.jpg!web

原问题链接:

https://www.zhihu.com/question/24393996

小结:提问之前最好先想想自己除了吃,还有什么生存意义!

No.4 为什么外国超级英雄趴着飞,而中国神仙竖着飞?

6JZrIjz.jpg!web

原问题链接:

https://www.zhihu.com/question/26992616

小结:这是怎样的神仙读者,居然问出了这种“惊天地,泣鬼神”的问题,想必各路神仙也在跃跃欲试,准备拉他过去现场讲解!

No.3 向日葵晚上在干嘛,跟着月亮吗?

VbErIbv.jpg!web

原问题链接:

https://www.zhihu.com/question/21370688/

小结:自产自销,果然够厉害,而且不要用人类“996”的思想去要求向日葵,人家太阳落山就下班了,不多说了,已泪崩!

No.2 苍蝇被搭载到另一个城市怎么办?它的家人孩子怎么办?

EjQ3m2Y.jpg!web

原问题链接:

https://www.zhihu.com/question/20831390/

小结:这位朋友为了苍蝇的生活操碎了心,不如让他们大家族都在自己的家里生活,实现大团圆的美好结局!

No.1 女友生气心烦的时候爱爬树怎么办?

uQzEVbJ.jpg!web

原问题链接:

https://www.zhihu.com/question/30914451/

小结:你们俩确定不是猴子派来的逗比?

写在最后

本文主要是通过这些问题图大家一乐,只有你在看文章的时候笑了,我们的目的就达到了。

知乎上实际上还是有很多很有价值的问题,即使是这些“沙雕”的问题,也有些非常有意思的回答,大家可以多去了解了解,开拓视野。

ma6Brii.gif


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK