我的豆瓣2017讀書記錄

事情是這樣的。

我讀過的書都在豆瓣上記錄,到了年底,也想做個(gè)總結(jié)。以前有豆油刀馬做的豆瓣統(tǒng)計(jì)應(yīng)用,后來又有豆瓣閱讀DNA,可惜這兩個(gè)服務(wù)都不再提供了;豆瓣官方去年倒是支撐了一個(gè)“2016讀書報(bào)告”,今年一看,2016的鏈接還掛在那里呢——豆瓣可真夠懶的。

所以我就想,何不自己做個(gè)記錄呢?上次用python寫了個(gè)自動(dòng)把讀過的書發(fā)到推特的“HelloWorld",已是11月底,正好有一個(gè)月時(shí)間來折騰。我的要求挺簡(jiǎn)單,對(duì)2017年讀過的書做個(gè)分月統(tǒng)計(jì),再做個(gè)封面墻,點(diǎn)擊圖片能鏈接到豆瓣條目上去——這么點(diǎn)小事要用一個(gè)月,顯然我很有自知之明。

網(wǎng)上搜了一下爬蟲,找到功能強(qiáng)大的爬蟲庫scrapy。但是在本機(jī)上安裝scrapy包時(shí)總是出錯(cuò),剛在推上叨叨一下,推友金色葡萄 @goldengrape 就推薦了notebooks.azure.com,在微軟azure云上運(yùn)行的交互式筆記本jupyter notebook,據(jù)說支持40多種編程語言。對(duì)我來說,支持python就足夠了。試用了一下,可以很方便地運(yùn)行、調(diào)試,對(duì)我這種菜鳥簡(jiǎn)直是神賜。年底時(shí)不知是否受intel芯片bug問題影響,azure運(yùn)行很慢,熱心的 @goldengrape 大神又推薦了cocalc.com,還分享了他的經(jīng)驗(yàn): 安裝anaconda記。

scrapy庫功能很強(qiáng)大,我只是用它來做了個(gè)最簡(jiǎn)單的爬蟲——抓取我的豆瓣讀書記錄,真是殺雞用牛刀。參考了scrapy入門教程以及一個(gè)豆瓣爬蟲樣例之后,依樣畫葫蘆,很容易就實(shí)現(xiàn)了,把爬下來的結(jié)果保存為json文件,以便后續(xù)處理。這中間還有個(gè)插曲,在用xpath對(duì)抓取的頁面提取書籍信息時(shí),犯了一個(gè)愚蠢的錯(cuò)誤,承蒙推友 @jljy_ 指出,多謝相助!

后面的事情比較簡(jiǎn)單,就是統(tǒng)計(jì)2017年讀過的書,做個(gè)分月統(tǒng)計(jì),然后用書籍的圖片和豆瓣條目鏈接做一個(gè)封面墻。

python有功能強(qiáng)大的繪圖庫matplotlib,本著殺雞用牛刀的一貫精神,我只用它畫了個(gè)柱狀圖。至于封面墻,我想也很容易,既然簡(jiǎn)書支持markdown,那么逐條按markdown格式把圖片鏈接和條目鏈接寫到一個(gè)文本文件里,然后拷貝到簡(jiǎn)書里發(fā)布,不就行了嗎。結(jié)果封面墻出了問題,在簡(jiǎn)書里預(yù)覽時(shí)能顯示圖片,點(diǎn)擊發(fā)布后所有圖片都顯示“上傳失敗”。請(qǐng)教了簡(jiǎn)書的技術(shù)支持,說可能是豆瓣有防盜鏈之類的防護(hù)。此路不通,就繞道走,我發(fā)現(xiàn)平時(shí)用的為知筆記也支持markdown,那就貼到為知筆記里好了。2017豆瓣讀書記錄

回頭看了一下代碼,只是實(shí)現(xiàn)了功能,代碼毫無規(guī)范可言,修修補(bǔ)補(bǔ)的簡(jiǎn)直慘不忍睹。等以后再改吧。

相關(guān)資源:

scrapy入門教程
Scrapy爬蟲框架教程(二)-爬取豆瓣電影TOP250
XPath 教程
十分鐘入門matplotlib

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容