天天看點

爬取了豆瓣11W+網頁,擷取了5W+有效書籍資訊爬取了豆瓣11W+網頁,擷取了5W+有效書籍資訊

爬取了豆瓣11W+網頁,擷取了5W+有效書籍資訊

标簽:爬蟲 Python

之前寫了一篇博文:利用爬蟲擷取豆瓣上可能喜歡的書籍,這篇博文中的爬蟲可以以給定的url為原點,慢慢的向外擴散爬取書籍資訊,可以擷取到自己可能喜歡的書籍,但是有一個大缺點,就是隻能提供一個初始url,即以一本書為基礎進行推薦,而不能針對一個使用者喜歡的所有書籍進行推薦。

後來想了想,可以把所有的書籍資訊爬取下來,然後根據推薦算法推薦書籍。說幹就幹,一邊調試一邊爬取,一個禮拜就爬完了“大部分的”有效書籍資訊。

本文主要根據原始資料進行一些簡單的資料分析。

什麼是有效書籍?

滿足一下要求的書籍稱為有效書籍:

  • 至少包含書名、作者、出版社、出版年、定價、ISBN
  • 評分至少大于等于7.9
  • 有内容簡介
  • 有熱評

經過觀察,不滿足以上所有要求的書,或者是外文書籍,或者是絕版書籍,或者是舊版書籍,或者是“垃圾書籍”,或者是“不值得”推薦書籍。之是以選擇7.9作為評分門檻值,是因為在部落客覺得可以接受的書中,最低分為7.9分。當然,下載下傳了源碼之後,你可以修改書籍的評分門檻值。

爬蟲都爬取了哪些資訊?

爬蟲将爬取的資訊儲存在MongoDB資料中,每本書籍資訊是一個文檔,具體如下:

  • 書籍url
  • 評分
  • 基本資訊:書名、作者、出版社、出版年、定價、ISBN
  • 簡介
  • 推薦書籍的url
  • 熱評

下圖為資料庫中《“笨辦法”學Python》的具體資訊(熱評就不完全顯示了):

爬取了豆瓣11W+網頁,擷取了5W+有效書籍資訊爬取了豆瓣11W+網頁,擷取了5W+有效書籍資訊

原來,衆人的口味是相同的

程式開始隻設定代碼大全(第2版)的url作為初始url。我期待的是依靠這一個url爬取計算機相關書籍的資訊,然而結果令我大吃一驚,僅僅依靠這一個url,爬取了包含但不限于計算機,政治,經濟,曆史,文學,動漫等領域共112826本有效書籍的url. 要知道,我可是把無效書籍提供的“推薦書籍的url”也抛棄了,原來,衆人的口味是“相同的”。

我們來看看幾個有趣的爬蟲軌迹:

  • 外國文學:百年孤獨<-月亮和六便士<-天才在左瘋子在右<-拆掉思維裡的牆<-少有人走的路<-如何閱讀一本書<-暗時間<-浪潮之巅<-軟體随想錄<-程式員修煉之道<-代碼大全
  • 武俠:天龍八部<-紅樓夢<-蘇菲的世界<-時間簡史<-上帝擲骰子嗎<-歌德爾、艾舍爾、巴赫<-失控<-浪潮之巅<-軟體随想錄<-程式員修煉之道<-代碼大全
  • 漫畫:海賊王<-灌籃高手<-亂馬1/2<-鄭玉巧教媽媽喂養<-鄭玉巧育兒經-嬰兒卷<-讓孩子做主<-和孩子劃清界限<-完整的成長<-親子關系全面技巧<-重塑心靈<-語言的魔力<-談話的力量<-學會提問<-你的燈亮着嗎<-最後期限<-人月神話<-代碼大全

檢視更多爬蟲的軌迹,其實能夠發現從一個領域到另一個領域的書籍一般都不是專業性特别強的書籍,如《暗時間》、《人月神話》等,這些書籍就是依靠一個url爬完大部分有效書籍的關鍵。

通過一個url爬完了大部分有效書籍,是不是就可以得到“衆人的口味是相同”的結論呢?其實我覺得是不可以的,之是以能夠爬取這麼多書籍,我猜測是豆瓣推薦算法的“驚喜度”比較高,比如《鄭玉巧教媽媽喂養》推薦了《亂馬1/2》,我覺得這兩本書真的差異有點過大。是以,本節的标題其實是一個玩笑~

有效書籍評分趨勢圖

将除了簡介和熱評意外的資訊輸出成Excel檔案格式,以友善做一些簡單的處理。

将所有“有效書籍”按照評分排序,得到有效書籍評分趨勢圖:

爬取了豆瓣11W+網頁,擷取了5W+有效書籍資訊爬取了豆瓣11W+網頁,擷取了5W+有效書籍資訊

該圖與我們的常識相符合,即好書總是少的,評分越低的書越多。9分(含)以上的書籍占所有書籍的10%左右,是以9分以上的書真的都是很好的書。

說實話,萬萬沒想到還有11本10分的書,随機選幾本看一下:《殷周金文內建(修訂增補本共8冊)(精)》,《宇宙兄弟(7)》,《動力取向精神醫學–臨床應用與實務》。

這些書評分人數普遍較少,基本都是冷門的方面,是以能夠來豆瓣評分的應該都是特别喜歡的,故評分為10分,也不奇怪。

最後一本在博文發表時已經不是10分,而是9.9分了……

其中《宇宙兄弟(7)》沒有熱評,應該算是“無效書籍”,應該是調試中不小心爬到的“無效書籍”,可以經過後續處理删除掉。

将所有書籍按照評分排序,可以看到好多漫畫的評分很高,如《灌籃高手》、《海賊王》,再做推薦算法的時候,不能僅僅依靠評分來推薦,是以後期我準備再改進一下爬蟲,給書籍加上标簽資訊。

各出版社有效書籍條形圖

我們來看看哪些出版社出版的“有效書籍”最多吧(前30名):

爬取了豆瓣11W+網頁,擷取了5W+有效書籍資訊爬取了豆瓣11W+網頁,擷取了5W+有效書籍資訊

不出意外,文學類的出版社遙遙領先。記得看到過一句話:“小說印數3000隻能說是一般,甚至較差。但是技術書籍印數3000,就算不錯了,如果能夠再版,一般都是經典之作了。”

技術類“有效書籍”排名第一的出版社是人民郵電出版社,入榜的還有機械工業出版社,電子工業出版社和清華大學出版社。部落客的書幾乎都是這四家出版社的,品質都蠻高的,這四家出版社的名字幾乎就能保證其書籍的品質了。

除了文學類,技術類,還有漫畫類也上榜了4家,可惜沒有大陸的出版社。

一個有趣的現象

在爬蟲爬取書籍的過程中,有一個有趣的現象,就是有一些頁面怎麼都打不開,一直都是

404 not found

,哪怕把浏覽器頭全部寫上也沒用,隻能使用真實的浏覽器打開。誠然,這裡一方面是自己技術不到家,但是另外一方面,這些書籍真的都有共同的特點。

不多說什麼,隻列出部分書籍:

《具有中國特色的中共決策機制》

《我們最幸福》

《雪白血紅》

《中華人民共和國史 第一卷斷裂與延續》

小結

  • 據說豆瓣上共有308W圖書,但是部落客爬取到的“有效書籍”隻有5W。其實每天讀一本書,人一輩子也隻能讀不到3W本
  • 好書很少,适合自己的好書更少,是以要用“推薦算法”推薦書籍,目前各大網站都有這個功能,要善于利用
  • 部落客的目标是實作自己的推薦系統,會加上GUI,源碼在這裡,希望能夠得到你的star