爬了知乎“沙雕問題”,笑死個人!
這兩天偶然上網(wǎng)的時候,被知乎上一個名為“玉皇大帝住在平流層還是對流層”的問題吸引。
圖片來自 Pexels
本以為只是小打小鬧,殊不知這個問題卻在知乎上引發(fā)了強烈共鳴,瀏覽次數(shù) 500W+,7000+ 關(guān)注:
于是乎就激發(fā)了去探索知乎上“沙雕”問題的想法,通過 Python 爬取這些問題的內(nèi)容,瀏覽次數(shù),關(guān)注人數(shù),總結(jié)一份權(quán)威(搞笑)的“沙雕”問題排行榜!
數(shù)據(jù)來源
知乎非常“貼心”地專門有一個問題可以滿足我們的需求,出人意料的是這個問題居然有 243 個回答,并且陶飛同學(xué)獲得了 3W+ 的贊同。
我們從中爬取了所有回答中出現(xiàn)的問題鏈接,共用 400 多個問題,其中陶飛就提供了 200+,在此向陶飛同學(xué)表示感謝,幫助我們構(gòu)建了“沙雕數(shù)據(jù)庫”。
這部分代碼如下:
- 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)]))
獲得到了問題的對應(yīng)的編號后,就可以去各自的頁面獲取各個問題對應(yīng)的的標題、瀏覽數(shù)等信息,如下圖所示:
這部分代碼如下:
- 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('問題已關(guān)閉',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))
數(shù)據(jù)分析
在分享出最終的“沙雕排行榜”前,我們首先嚴肅認真(lixinggongshi)的進行一波分析,主要看一下問題中的關(guān)鍵詞。
首先是所有詞云的詞云:
看來這些問題大多是源自于大家對于人生的探索,否則“為什么”,“如果”,“怎么辦”也不會出現(xiàn)那么多。
出人意料的是“體驗”這個知乎專屬 tag 居然并不多,可能是出于對知乎的尊重,和“體驗”相關(guān)的問題都不會問得那么“沙雕”。
下面把這些助詞去掉,再來看下結(jié)果:
這個圖看來,讀者關(guān)注的問題還是很極端:一方面在關(guān)注男女朋友“你冷酷、你無情、你無理取鬧”這種問題;另一方面卻在關(guān)注宇宙、地球這種關(guān)乎全人類的問題,很符合知乎“人均 985,各個過百萬”的人設(shè)。
這兩個圖實際上都是基于一個表情,不知道有沒有看出來:
好吧,其實看不出來才是正常,能看出來的可能現(xiàn)在去知乎提個問題,下期就會上榜。
最后把部分問題做出詞云:
不知道大家能不能看清,說實話我自己是看不清的,也沒準備讓大家看清,目的就是引出下面真正的排行榜。
沙雕問題排行榜
通過綜合問題觀看數(shù),關(guān)注數(shù),回答數(shù),關(guān)注占比,回答占比,綜合得到分數(shù)的流量指數(shù)和新奇指數(shù),最終獲得一個整體的分數(shù)。
如下圖所示:
聽起來是不是很復(fù)雜,實際上最終還是通過 10% 的數(shù)據(jù)+90% 的主觀來進行了排名,為大家精選了 15 個最為“沙雕”的問題。
也選取部分網(wǎng)友的回答,問問題的操作誠然很風(fēng)騷,面對這些“沙雕”問題,認真回答的絕對是風(fēng)騷 PLUS,特此聲明,以下回答來自于知乎網(wǎng)友。
No.15 李白寫那么多詩,他自己都會背嗎?
原問題鏈接:
https://www.zhihu.com/question/276876453
小結(jié):寫自己的詩,讓別人去背吧,真乃人生最高境界
No.14 豬八戒是黑豬還是白豬?
原問題鏈接:
https://www.zhihu.com/question/37160000
小結(jié):后經(jīng)多方考證,證明了豬八戒的黑豬身份,這下子身價進一步暴增,對此我們表示:黑豬白豬,不漲價的豬就是好豬。
No.13 鄒市明能一拳把自己打暈嗎?
原問題鏈接:
https://www.zhihu.com/question/36805199
小結(jié):知乎上各種關(guān)于鄒市明能打多少人的問題層出不窮,沒想到最終還是要向自己動手了!
No.12 生蠔煮熟了還可以叫生蠔么?
原問題鏈接:
https://www.zhihu.com/question/25016659
小結(jié):這個問題就好比有些叫帥帥的人,無論長成什么樣,別人都要叫他帥帥!
No.11 被袋鼠暴打是一種怎樣的體驗?
原問題鏈接:
https://www.zhihu.com/question/27387052
小結(jié):珍愛生命,遠離袋鼠,切莫為了一個高贊回答去和袋鼠親身肉搏,否則可能還沒來得及分享“剛編出來的故事”就……
No.10 禿頂?shù)娜讼搭^,應(yīng)該用洗發(fā)水還是洗面奶?
原問題鏈接:
https://www.zhihu.com/question/48119206
小結(jié):希望廣大程序員朋友保護好頭發(fā),不要有朝一日被邀請回答這個問題!
No.9 如果地球上所有人同時用激光筆指著月亮,月亮?xí)粫冾伾?
原問題鏈接:
https://www.zhihu.com/question/48119206
小結(jié):會不會變色無從考究,但是在月亮變色前,我的眼睛一定會先被閃瞎!
No.8 玉皇大帝住在平流層還是對流層?
原問題鏈接:
https://www.zhihu.com/question/304133742/
小結(jié):這個問題應(yīng)該就是“一本正經(jīng)的胡說八道”集大成者,評論區(qū)好多相關(guān)領(lǐng)域人士進行了認真解答,不過究竟住哪也沒搞明白,可能只能只有孫悟空知道答案了!
No.7 把一個變色龍綁在不斷變換顏色的燈上,它會不會心力交瘁而死?
原問題鏈接:
https://www.zhihu.com/question/32052499
小結(jié):變色龍屬于國家級保護動物,很可能還沒看到結(jié)果,先被帶走接受教育!
No.6 如果把皮卡丘的耳朵塞到插座里,皮卡丘會被電死么?
原問題鏈接:
https://www.zhihu.com/question/52083864
小結(jié):皮卡丘會不會被電死不好說,但是你會不會被電死還是很清楚的!
No.5 西瓜除了被吃還有什么生存意義?
原問題鏈接:
https://www.zhihu.com/question/24393996
小結(jié):提問之前最好先想想自己除了吃,還有什么生存意義!
No.4 為什么外國超級英雄趴著飛,而中國神仙豎著飛?
原問題鏈接:
https://www.zhihu.com/question/26992616
小結(jié):這是怎樣的神仙讀者,居然問出了這種“驚天地,泣鬼神”的問題,想必各路神仙也在躍躍欲試,準備拉他過去現(xiàn)場講解!
No.3 向日葵晚上在干嘛,跟著月亮嗎?
原問題鏈接:
https://www.zhihu.com/question/21370688/
小結(jié):自產(chǎn)自銷,果然夠厲害,而且不要用人類“996”的思想去要求向日葵,人家太陽落山就下班了,不多說了,已淚崩!
No.2 蒼蠅被搭載到另一個城市怎么辦?它的家人孩子怎么辦?
原問題鏈接:
https://www.zhihu.com/question/20831390/
小結(jié):這位朋友為了蒼蠅的生活操碎了心,不如讓他們大家族都在自己的家里生活,實現(xiàn)大團圓的美好結(jié)局!
No.1 女友生氣心煩的時候愛爬樹怎么辦?
原問題鏈接:
https://www.zhihu.com/question/30914451/
小結(jié):你們倆確定不是猴子派來的逗比?
寫在最后
本文主要是通過這些問題圖大家一樂,只有你在看文章的時候笑了,我們的目的就達到了。
知乎上實際上還是有很多很有價值的問題,即使是這些“沙雕”的問題,也有些非常有意思的回答,大家可以多去了解了解,開拓視野。