国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

豆瓣閱讀報告生成器

Simon / 1582人閱讀

摘要:是一個自動根據你的豆瓣讀書標記生成讀書報告的腳本。動機我自己自己是一個重度豆瓣讀書用戶注意這里要區分豆瓣讀書和豆瓣閱讀的區別。豆瓣授權由于要讀用戶的豆瓣數據,那么就要接入豆瓣的,那么就要先向豆瓣申請授權。

DouBanReader是一個自動根據你的豆瓣讀書標記生成讀書報告的腳本。適用對象是像我這種豆瓣讀書的重度用戶,會在豆瓣上標記自己讀過的每一本書,并且會很負責地打分與寫review。對于這樣的用戶,這個項目可以幫你一鍵生成讀書報告,并且格式化成MarkDown格式,之后你再發布到各大博客平臺或者自己轉成其他格式(HTML,PDF和圖片等)都非常容易。

動機

我自己自己是一個重度豆瓣讀書用戶(注意這里要區分豆瓣讀書和豆瓣閱讀的區別)。最近兩年的年閱讀量都在45到50本之間,今年上半年更是因為工作任務比較少的關系,有幾個月的月閱讀量都在5本以上。同時,我也信奉光讀書不動筆相當于沒讀的道理,所以從去年開始,我就開始寫每個月的閱讀報告。那么這就帶來一個問題——一篇閱讀報告中,很多工作其實都是重復的:

對于每一個本書的review其實我已經在豆瓣讀書上都寫過了(一般剛一讀完我就會著手寫心得然后發在豆瓣讀書上)

組織閱讀報告格式時,要去豆瓣搜集書的信息:封面的圖片和豆瓣鏈接

這些工作做起來又無聊又容易出錯(復制黏貼很容易黏錯或者黏漏了),所以我就萌生了做一個自動生成閱讀報告的工具。

功能點

做一個項目之前肯定要先確認需要做哪些功能點,所以這里先列一下這個項目的功能點以及完成情況。

豆瓣授權

由于要讀用戶的豆瓣數據,那么就要接入豆瓣的API,那么就要先向豆瓣API申請授權。具體的授權流程可以參見:使用OAuth2.0訪問豆瓣API,具體的豆瓣API說明可以參見:豆瓣開發者服務。

獲取用戶的讀書信息

核心功能點。要獲取的數據分三塊:圖書鏈接、圖書封面和用戶書評(review)。同時這些數據的獲取要能按照時間區間區分(用數字代表月份,0代表全年)。

主要調用API參見:圖書Api V2。具體的流程分成兩步:

獲取用戶在特定時間段內的『已讀』數據信息集合(這一步就可以獲取到圖書鏈接和封面圖片了)

獲取用戶對每本書的書評(review)

其中,第一步很好做,因為API直接提供了這些數據,第二點就是坑多且深,因為API并不直接提供,這也是非常值得吐槽的點:豆瓣的開放API有兩版,但是V2現在就像是還沒做完就放棄了一樣,根本沒有完全覆蓋到V1,再具體到用戶書評這一點上,V1雖然相較V2是提供了相關的接口,但是普通權限只能讀一個人的所有書評并且還不是全文,高級權限也沒有提供具體到特定用戶對特定圖書的書評的數據接口。

因此,對于第二步,還得將其拆分成三個小步驟:獲取已讀圖書ID-->獲取相應圖書所有書評-->篩選出當前用戶書評并直接獲取相應頁面信息-->對書評頁面的HTML代碼進行正則匹配找出書評內容。本來在我看來是應該由API提供的數據,因為豆瓣開放平臺沒有提供,所以只能繞這么大一圈,而且還留下了很多隱患:遍歷所有書評需要多次網絡請求,增加了不可靠性;用正則匹配來處理HTML頁面的時效性問題……

生成MarkDown文件

根據模板,將獲取到的數據填充進去,生成一篇MarkDown格式的文章。具體的格式可以可以參見:四月份閱讀報告

生成圖片(未完成)

設定這個功能的初衷本來是想方便發微博和微信,而且以為這個功能應該是有庫可以支持和提供的。但是等到準備開始做的時候,調查一圈之后發現:庫只有圖片繪制庫,想要完成這個功能需要自己寫很多代碼,而且如果想要生成的圖片格式好看,需要的工作量不亞于再開一個小工程。有鑒于此,就將這個功能點先延后了,以后如果有時間的再進行補充。

豆瓣API的那些坑

這個是我在做這個項目時,遇到的豆瓣開發平臺的坑,坑是指在API文檔中沒有指明的或者很容易讓人誤解的地方,這些地方你遇到錯誤的時候完全不知道你自己錯在哪里,等在網上查到原因的時候,第一反應就是:『臥槽,這文檔上根本就沒寫嘛,這我怎么能知道?!』,或者『臥槽,這里怎么能這樣設計,算幾個意思呀,真特么麻煩呀!』。把這些坑寫出來也是為了能給以后的開發人員節省點時間(雖然我現在都覺得以豆瓣API V2的這個質量,還有沒有開發人員原因為其開發應用了)。

在獲取access_token時(https://www.douban.com/service/auth2/token)需要在headers中加入"Content-Type": "application/x-www-form-urlencoded",不然會一直報400錯誤,提示"required_parameter_is_missing: client_id"。

在獲取當前用戶信息時(https://api.douban.com/v2/user/~me)需要在headers中加入"Authorization": "Bearer " + access_token,不然會一直報403錯誤。

獲取用戶書籍收藏信息時,所給出的時間區間參數需要帶『時區』不然會被直接無視。正確的GET請求URL應為:api.douban.com/v2/book/user/findingsea_ly/collections?status=read&from=2015-06-01T13:14:15+08:00&to=2015-07-01T13:14:15+08:00。

豆瓣的API對于評論的讀取限制非常多,沒有辦法用用戶ID和圖書ID就直接獲取到特定用戶對于特定圖書的評論(reivew),同時如果獲取特定圖書的所有評論信息進行遍歷,其中也只能得到用戶評論的summary(非全文,三個省略號結尾),暫時想到的辦法也只能通過對所有信息的遍歷,得到特定的那一條后再根據其中的評論鏈接,用爬蟲進行爬取。

項目依賴

由于生成圖片的功能點沒有完成,所以本次只額外用到了一個網絡請求包:Requests: HTTP for Humans。

項目總結

總體而言,DouBanReader是一個解決了我的實際需求的小項目,就功能點上來說,并沒有難的地方,但同樣能學到很多小細節,比如字符串寫入文件前的格式化(Python2中文操作不可避免的)和正則表達式的使用技巧(去除各種空白、URL解析和HTML正則查找等)。所以我對這個項目的完成度和學習度就還是挺滿意的,再接再厲吧。

GitHub - findingsea/DouBanReader

以上。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37567.html

相關文章

  • 微豆 - Vue 2.0 實現豆瓣 Web App 教程

    摘要:微豆一個使用與重構豆瓣的項目。在中的配置代理重新啟動,打開查看結果是否與直接請求豆瓣相同。更多請參考豆瓣電影文檔。它采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。 微豆 Vdo 一個使用 Vue.js 與 Material Design 重構 豆瓣 的項目。 項目網站 http://vdo.ralfz.com/ GitHub https:...

    cjie 評論0 收藏0
  • 后端好書閱讀與推薦(續二)

    摘要:后端好書閱讀與推薦系列文章后端好書閱讀與推薦后端好書閱讀與推薦續后端好書閱讀與推薦續二幾個月又過去了,又讀了幾本書,同時為了深切體會到某些書里面的要點還專門做了一個小項目,這里就把讀書與小項目過程中的一些心得體會記錄一下。 后端好書閱讀與推薦系列文章:后端好書閱讀與推薦后端好書閱讀與推薦(續)后端好書閱讀與推薦(續二) 幾個月又過去了,又讀了幾本書,同時為了深切體會到某些書里面的要點還...

    Jioby 評論0 收藏0
  • 后端好書閱讀與推薦(續二)

    摘要:后端好書閱讀與推薦系列文章后端好書閱讀與推薦后端好書閱讀與推薦續后端好書閱讀與推薦續二幾個月又過去了,又讀了幾本書,同時為了深切體會到某些書里面的要點還專門做了一個小項目,這里就把讀書與小項目過程中的一些心得體會記錄一下。 后端好書閱讀與推薦系列文章:后端好書閱讀與推薦后端好書閱讀與推薦(續)后端好書閱讀與推薦(續二) 幾個月又過去了,又讀了幾本書,同時為了深切體會到某些書里面的要點還...

    CompileYouth 評論0 收藏0
  • 23個Python爬蟲開源項目代碼,包含微信、淘寶、豆瓣、知乎、微博等

    摘要:今天為大家整理了個爬蟲項目。地址新浪微博爬蟲主要爬取新浪微博用戶的個人信息微博信息粉絲和關注。代碼獲取新浪微博進行登錄,可通過多賬號登錄來防止新浪的反扒。涵蓋鏈家爬蟲一文的全部代碼,包括鏈家模擬登錄代碼。支持微博知乎豆瓣。 showImg(https://segmentfault.com/img/remote/1460000018452185?w=1000&h=667); 今天為大家整...

    jlanglang 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<