python 数据分析 书籍推荐 知乎_Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书!...
原標題:Python 爬取知乎 9674 個問答,揭秘最受歡迎的 98 本書!
作者 | Yura
責編 | 胡巍巍
高爾基這話有沒有道理我不知道,
咱也不敢問,
主要是現在也問不了。
那對我來說,讀書有什么意義呢?
應該也是階梯。
但是這影響是消極還是積極,
投入的時間和得到的回報到底成不成正比?
每本都不一樣,
這很大情況與書的質量有關。
那么問題就來了,
我們到底該讀什么書呢?
換言之,
若想階梯又穩又長,
需要什么樣的磚呢?
我知道豆瓣有評分TOP100的書籍榜單,
但是看著這一長串的列表,
我覺得不夠有人情味。
我平時書荒的時候喜歡逛知乎,
那些帶有“小紅書”式夸張描述,
“必讀,不可錯過”“跪了”“強推“,
往往讓我有一種馬上買它!
啊,不是,
下載它的沖動!
上個月我買了個電子書下載的會員,
每天可以將書直接推送Kindle,
非常方便!
但是,會員是要錢的,
而且,是有時間限制的……
一眨眼,還有3天就到期了。
想想自己上個月頂多下載了3本書
現在還有3天就過期了
相當于白白浪費了
20本*(30-3天)-3本=537本書的下載機會。
還剩下3天,我一定要利用起來!
每天下載60本(哪年哪月能看完我們暫時不討論了)。
但是知乎一條一條翻答案未免太麻煩了8!
而且好幾條都是推薦差不多內容的,
不如爬取相關問題的所有答案,
做個匯總好啦!
數據獲取
雖說知乎有個“閱讀”的話題,但是我看了一下里面的問題不全是推薦書的,若是都爬取下來可能80%的數據都是與書籍推薦無關的。
所以我直接知乎搜索“書”,選取了回答熱度較高的6個問題:
還是利用Python進行爬蟲,
進入頁面,展開答案:
點擊“檢查”網頁,不斷往下拉,
我們可以在XHR找到明顯帶有“answer”字樣的鏈接:
多看幾個鏈接就能找到規律啦,
(offset:0,5,15,20……)
挑自己感興趣的字段就能“咻咻咻”爬下來了,
其他5個問題如法炮制,得到以下:
總共獲取9674個回答,基本字段如下:
數據清洗
以前總覺得爬數據最難,
只要爬下來了,一切好說!
想怎么處理怎么處理,想怎么分析怎么分析。
但是這次,
爬蟲的主要目的是列出一個高頻出現的書籍清單,
大家的答案有言簡意賅的
(我暫且不批評這些同學會的不帶書名號):
也有這樣,推薦語(廢話)一大堆的:
你瞧瞧,回答字數最多的可有3萬多字呢!
研究爬蟲大概花了我一個小時,
但是怎么分析這些答案讓我頭痛了三個晚上!
先看一下主要的問題:
很多答案沒有帶書名號,因此不能簡單地用正則表達式;
知友們回答的時候會出現書名打錯(“一句話頂一萬句”),還有書名簡寫或表達方式不同的情況(比如,關于哈利波特系列書籍的說法就有11種……);
最重要的是,我還不具有“看到一個詞或一句話就分辨出哪些是書名哪些不是”的能力。我自己都不知道,我怎么讓Python判斷提取呢……
我也曾想過干脆只用《》來正則匹配內容
結果發現:
44.96%的用戶回答問題的時候非常不規范,
他們在回答中沒有有使用書名號!
直接這樣分析的話就相當于丟失了將近一半的數據!
💡除非……除非我有一個圖書庫,
里面有所有書的書名,
這樣我只要遍歷每個答案,
如果Ta提到了這本書,
就把這個書名提取出來,
最后再統計分析就好啦!
然而,那句話怎么說來著,
想象很豐滿,現實很骨感。
我并沒有這樣的圖書庫。
利用現有的數據,
我只能勉強以另外55.04%個答案中出現的書名,
進行簡單處理,
得到一個簡陋的書名列表……
然后再對每個答案進行遍歷……
個中辛酸就不提了,提了也沒用。
因為并不是完美的解決之道,
只能勉強滿足我本次爬蟲的目的罷了,
不過就我走過的一些坑,我還是列一下。
雖然前方有很多坑
但是大家能少進一個就少進一個吧:
數據分析
在得到最終TOP書單之前,
我們按照慣例看看這些答案的基本情況。
知乎后臺性別顯示的是0、1和-1,
通過研究具體兩三個用戶的資料,
我發現0表示女生,1表示男生,-1表示未知。
看樣子這6個答案下面男生的比例略高于女生。
男生和女生回答問題的長度很接近,
說明大家都蠻勤奮的,
從互動角度來看,
男生答案人均點贊數略高于女生,
人均評論數卻高出女生55%,
可能他們的答案比較具有爭議性。
不過讀書這種事嘛,
本來就是男女老少皆宜的,
因此在這種話題下區別性應該不大。
和正常(現代)人的作息很接近,
大部分答案是在白天的時候提交的,
其中有11%的用戶在凌晨0到4點之間回答,
我覺得這部分人睡前肯定沒有看書。
從回答時間和點贊數的散點圖來看,
一些高贊答案都是出現在早上8點到晚上8點之間
這段時間大家精神充沛,
比較容易寫出高質量答案,
養生Girl再次呼吁,大家一定要早睡呀!
有人問睡不著怎么辦?
我上一段不是說了嘛(自行體會)。
前面也提到過,
答案字數最少的回答,
只有一個字:飄。
長度最長的有32210個字
是我畢業論文長度的1.5倍。
整體統計了一下,
84%的答案長度在1000字以內,
很符合大家碎片化閱讀的習慣。
然而,
另外的16%用戶卻獲得了這些答案下
93%的點贊數和72%的評論數。
瞧,瞧瞧(敲黑板),
多么形象的二八法則實例,
快做筆記同學們!
后來看看,
我得到的這三天需要下載的書單
(按照知友提到的頻次排序):
98本里面我看過30本,
那么我可以從剩下的68中去掉8本
我絕對不想看的。
然后每天下載20本。
有人問為什么是TOP98,不是100?
因為我覺得這樣看起來比較少,
會更有動力“yes”所有書。
作者:Yura,計算機科學與技術專業大四在讀,因在澳洲交換學習接觸了大數據,甚感興趣。遂開公眾號“Yura不說數據說”督促自己學習數據分析!歡迎大家關注我的個人公眾號,一起(監督我)學習。
責任編輯:
總結
以上是生活随笔為你收集整理的python 数据分析 书籍推荐 知乎_Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书!...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么在空间发网址(怎么在空间发网址给别人
- 下一篇: 泗阳备案价查询(泗阳备案价)