文章轉載至Python與數據分析(ID:PythonML),作者:沈仲強
先來觀察一下:
看出什麽規律了麽?
短小精辟有沒有?讚同很多有沒有?所以爬取知乎神回復我們只要爬取那些讚同多又字數少的回答就可以。簡單的兩個步驟就能實現,第一步爬取知乎回答,第二部篩選回答。是不是很easy?
爬取知乎回答
第一步我們爬取知乎上的回答。知乎上的回答太多了,一下子爬取所有的回答會很費時,我們可以選定幾個話題,爬取這幾個話題裡的內容。
下面的函數用於爬取某一個指定話題的內容:
get_answers_by_page函數有兩個參數,第一個參數是話題的id,第二個參數表示爬的是第幾頁的內容。
爬下來的內容當中有幾個需要注意的資料欄,下圖中用黃框高亮出來了:
這幾個資料欄的含義如下:
question.title - 問題的標題
content - 回答的內容
voteup_count - 讚同的數量
這些資料欄在下一步篩選回答的時候會用到。
篩選回答
爬完數據後,我們來篩選一下結果。
我們用MongoDB中的聚合管道對回答做篩選(關於MongoDB的聚合管道的用法可以參考Aggregation Pipeline Quick Reference這篇文章,地址:https://docs.mongodb.com/manual/meta/aggregation-quick-reference/
代碼如下:
上面的代碼會篩選所有讚同大於1000、字數小於50的回答,篩選出來的結果就是短小精辟的神回復。
以上是核心代碼,完整代碼已上傳github,大家可以在公眾號後台回復知乎神回復獲取地址。
知乎神回復
代碼寫完了,可以運行下看看,這裡就有75條篩選出來與程式員有關的神回復。
Q: 碼農們最常說的「謊言」有哪些?
A: //TODO
Q: 在 GitHub 上保持 365 天全綠是怎樣一種體驗?
A: 曾經保持了200多天全綠,但是冷落了女朋友,一直綠到現在。
Q: 如何反駁「程式員離開電腦就是廢物」這個觀點?
A: 不不不,很多程式員在電腦前也是廢物。
Q: 假如有一天所有的人都使用電腦語言說話,會是怎樣的場景?
A: hello, world.燙燙燙燙燙燙燙?d}??R?0:?v??.
Q: 突然想開一家程式員主題的餐館,名字就叫程式員的菜,菜名就叫各種語言中的關鍵字,各位指點一哈,有前途沒?
A: 進門一個大大的 hello world ,招牌菜叫“紅燒產品經理”,一定會爆滿的
Q: 什麽是遞歸?
A: 「不宜公開討論的政治內容」的定義和範疇本身也屬於「不宜公開討論的政治內容」
Q: 編程最基本的術語 “bug” 該怎麽翻譯?
A: 么蛾子,你的程式又出么蛾子了。
Q: 編程的樂趣是什麽?
A: 人的成就感來源於兩樣東西,創造和毀滅。
Q: 如何反駁「程式員離開電腦就是廢物」這個觀點?
A: 老實說 跟這種女人都能聊下去 你是不是想上她?
Q: 作為程式員,你在編程時吃了哪些數學的虧?
A: 看論文時候一個"顯然"推了我一下午
Q: 土豪程式員的設備都有啥?
A: 女朋友。。。
Q: 祈求代碼不出 bug 該拜哪個神仙?
A: 拜雍正,專治八阿哥。
Q: 考上好大學學 IT 是不是當今中國窮人家孩子晉級中產唯一的出路?
A: 對,就4條路:寫代碼;搞金融;在代碼圈搞金融;在金融圈寫代碼
Q: 為什麽程式員無論到哪兒都喜歡背電腦包,哪怕裡面沒有裝電腦?
A: 因為他們沒有別的包。
Q: 「Talk is cheap. Show me the code」怎麽翻譯比較好?
A: 屁話少說,放碼過來。
Q: 為什麽程式員的女朋友或老婆顏值普遍要高於男方很多?還是說程式員已經算是婚戀市場的優質股了?
A: 程式員女朋友顏值高,我是服的,因為隨便問十個程式員他的女朋友是誰,有九個回答是新垣結衣
Q: 為什麽一部分人寧可買幾個機械鍵盤換著用,也不願意給自己敷一下面膜?
A:老子不靠臉吃飯。老子的辛辛苦苦掙來的鈔票。老子想怎麽花就怎麽花。
Q: 程式員夫妻結婚戒指刻什麽字好?
A: 0 error 0 warning
Q: IT 工程師被叫「碼農」時是否會不舒服?
A: 我們好歹還是人,產品和設計已經是狗了……
Q: 為什麽一個銷售男(30歲)會約我一個男程式員(24歲)去小區附近的星巴克?
A: 根據哥多年的經驗,他應該是有巨牛逼的idea然後只差程式員去實現了
Q: 怎麽找到喜歡程式員的妹子做女友?
A: 看緣分,知乎上這麽多用戶,你關注到我就是緣分。
Q: 程式員女朋友如何給程式員男朋友過生日?
A: 告訴他,接口已經準備好了。
Q: 作為程式員,你是如何在工作以後找到女朋友的?
A: 題主作了這麽久的程式員,還喜歡女孩子已經難能可貴了。
Q: 程式員轉行燒烤需要做哪些準備,有哪些優勢和劣勢?
A: 你看,你連自己做燒烤都不知道優勢劣勢在哪裡,所以,你還是需要一名產品經理。
Q: 哪些話可以惹火程式員?
A: 路過他電腦前時說一句,呦,又在寫bug呢!
Q: 我的一位老師說,Java 適用於大型軟體而 C# 適用中小型軟體。這是真的麽?
A: Java有項天賦,就是能把中小型軟體寫成大型的。
Q: 為什麽 2014 年程式員薪資那麽高?
A: 時薪又不高
Q: 是不是大部分程式員都在抱怨工資低?
A: 誰、誰在抱怨工資高?
Q: 單身程式狗解決了一個技術難題後沒有妹子可以炫耀或誇一下自己怎麽辦?
A: 現在你明白了吧,為什麽那麽多程式員要寫技術部落格。
Q: 中國程式員是否偏愛「衝鋒衣+牛仔褲+運動鞋」的衣著?如果是,為何會形成這樣的潮流?
A: 穿那麽好看給程式看嗎?
Q: 作為 IT 從業人員,你覺得有什麽工具大大提高了你的工作效率?
A: 單身
Q: 為什麽我認為程式員似乎大多不善言辭?
A:你就當是我們情商低就好了,這樣你開心,我們也開心。
Q: 在中國,年齡最大的程式員不過40歲左右,請問中國的程式員未來還可以做什麽?
A: 這跟為什麽90後沒人活過30歲是同一個原理
Q: 如何回復程式員發來的簡訊:「Hello world」?
A: hello nerd.
Q: 怎麽看出 IT 男喜歡一個女生?
A: 當他拚著自己早已養成的寡言少語的習慣去死命的跟你套近乎的時候
Q: 為什麽程式員不應該會修電腦?
A: 范冰冰需要會修電視機嗎?
Q: 同事說自己 C++ 水準全中國第一,怎麽讓他意識到自己沒那麽厲害?
A: 實不相瞞,我也不是裝逼:我的 C++ 水準全國第 0。
Q: 為什麽 iPhone 刪軟體時,所有圖示都要抖?
A: 第三方軟體是嚇得,系統自帶軟體是嘚瑟
Q: 左輪手槍裝有一顆子彈,對著自己頭開一槍獎勵10萬元,兩槍1億,三槍2億,四槍4億,5槍16億,值得嗎?
A: 只要不打要害,我告訴你,我能打到我們A站上市!!!!
Q: iPhone 處理器的性能按照現在每年翻一倍的節奏,是不是很快就能趕上甚至超過台式電腦的處理器?
A: 小時候我總覺得過兩年我就能和大我兩歲的哥哥一樣大了。
Q: 知乎給你帶來的最小限度的好處是什麽?
A: 消磨時間還不覺得罪惡。
Q: 有哪些反人類的科技發明或設計?
A: 電腦連不上網,診斷以後它提示我要聯網解決
Q: 為什麽設計師不願意被稱為美工?
A: 只要工資開的高,叫我阿姨都行。
Q: 為什麽有人認為網易雲音樂是業界良心?
A: 有一天突然給我推送一條消息說我要的歌詞找到了
Q: 為什麽沒有出現無人機自毀式攻擊武器呢?恐怖分子用過嗎?
A: 你是說飛彈麽?
Q: 既然思想是我的,那麽為什麽有時候我控制不了我的負面情緒?
A: 作業系統不會允許用戶訪問、修改及刪除核心系統檔案,因為這會損壞系統,導致運行異常。
Q: 魯迅雖然很牛,但在這世界十大文豪裡是不是湊數的?
A: 為什麽文豪要為文盲排的榜買單?
Q: 人類的哪些科技已經接近瓶頸,很久沒有重大突破了?
A: 燒開水
Q: 如何看待某些人下載軟體喜歡到官網的偏好?
A: 同學你沒中過百度全家桶吧?
Q: 為什麽很多人買筆電打遊戲,而不用性能更好的台式機?
A: 因為買不起房子。。。
Q: 第一次聽好耳機對你帶來的震撼有多大?
A: 第一次聽好耳機不會給人多大震撼,但是當換回普通耳機的時候,震撼就來了
Q: Chrome 真的很費電嗎?
A: 不費電,我現在就在用Chrome,用到現在這麽久,筆電電量還有50%,我估訁
Q: MacBook 上安裝 Windows 後的使用體驗如何?
A: 像突然間有了軟肋,並且還失去了鎧甲。
Q: 家裡所有有關產品都用蘋果產品是一種什麽體驗?
A: 來個電話全家都響了起來
Q: 你為什麽不買 iPhone X?
A: 日益增長的美好生活需要和貧窮的現實之間的矛盾
Q: 為什麽有人願意花幾千元買 iPhone ,卻不願意花幾十元買正版 iPhone 軟體和遊戲?
A: 因為他們下載不到iphone
Q: 有什麽 App 取的名字特別驚豔?
A: 水表助手…是查快遞的…
Q: 你為什麽要買移動硬碟?
A: 條件好了也要給自己的女人們住舒適點啊
Q: 如何用 iPad 遙控 PC 關機?
A: 瞄準pc電源鍵扔過去
Q: 如何評價 2016 年 9 月 7 日的蘋果發布會?
A: 為了新MacBook Pro,半年看了三場發布會……
Q: 如何評價 Internet Explorer?
A: 下載其他瀏覽器的瀏覽器
-----一年後-----
IE8以下好爛,做前端想哭的節奏。
Q: 爸媽讓我攢錢買房,我卻想買蘋果電腦怎麽辦?
A: 你要真能3年攢50萬的房子,差這1萬7買個電腦麽,大哥?
Q: 有哪些垃圾手機軟體?
A: 簡訊攔截軟體! 攔截後告訴你它攔截了一條簡訊。 我相信99%的人會再去點進去看一下被攔截的簡訊!
Q: 一個完整的 PPT 做下來,最讓你頭疼的是什麽?
A: 怎樣向長官隱藏自己的實力。
Q: 什麽是 Vim 可以做而 Emacs 做不到的?
A: 幫助烏乾達的可憐兒童……
Q: 蘋果用戶為什麽選擇蘋果?
A: 因為不用蘋果的用戶不是蘋果用戶。
Q: 電腦世界裡有哪些經典謠言?
A: windows正在聯機尋找解決方案。
Q: 有線滑鼠會被無線滑鼠取代嗎?
A: 我覺得在網咖有線滑鼠就不會被取代
Q: 電腦世界裡有哪些經典謠言?
A: 我已閱讀並同意該條款
Q: 電腦系的學生都有哪些口頭禪?
A: 我電腦上運行的好好的啊??
Q: 如何看待百度官博公開辟謠涉李彥巨集家事傳聞?
A:「中國人對隱私沒那麽敏感,願意用隱私換取便利。」——李彥巨集
Q: 在飛機上遇到了馬雲該怎麽聊天?
A: Hello Jack, my name is Jackson.
Q: 如何理解馬雲說八年後房如蔥?
A: 趕緊買蔥啊,蔥要漲價了!!!
Q: 如何理解馬雲說的「把地主殺了,不等於你能富起來」這句話?
A: 他的意思是「別殺我」
Q: 如何看待百度在魏則西事件過去之後又悄悄的把承諾整改的廣告提示顏色調淡了?
A: 請大家不要黑百度,我是做前端開發的,這是時間久了,網頁CSS掉色了