背景:
不知不覺在掘金買了好幾本小冊了,基本沒怎麼看,在電腦或者手機上看,看一會就以爲累,還要打開掘金的網站,找到本身的小冊,零碎的時間根本用不上。平時本身用kindle比較多,就像把掘金小冊裝進kindle多好,就算批量下載到電腦上,也比打開掘金網站找小冊強,因而就產生了這個項目。
項目思路:
項目的思路比較簡單,分爲下面幾個步驟。git
- 分析掘金小冊站點,咱們每次點擊一個章節,都會發現URL的後面一串會發生變化,因而懷疑這一串字符就是每章節的ID,因而首先要獲取的就是整個小冊的全部章節ID;
- 通過上面思路的尋找,就找到了XHR請求中
get?uid
這個請求,看了一下response,果真有一串是sectionID
;
- 拿到全部章節ID後,就要找獲取章節內容的API,這時你能夠在開發者工具的filter中,搜索section(直覺),能夠找到
getSection?uid
的API,打開一看,果真就是根據sectionID獲取內容;
- 全部API找到後,就能夠構造參數,爬取你想要的內容了。
Github README
直接把GitHub上的README拿過來了,寫的比較詳細,適合小白入手。github
將你的掘金小冊裝進kindle
- 下載掘金小冊保存爲MarkDown的格式
- 下載掘金小冊保存爲mobi格式
注意:轉成mobi用的是這個項目,只支持一級目錄和二級目錄,致使目前mobi格式比較亂,裏面的圖片沒有處理,若是你有好用的轉mobi的工具或者代碼,必定提issue告訴我,或者直接contribute.
使用方法
- 從掘金小冊的站點獲取client_id,uid,token等信息,填入./config/config.json中
- go run main.go
- 對於沒有Go環境的小夥伴,在tool文件夾中已經編譯好了Linux&Mac版本的可執行文件,./juejinxiaoceToolForLinux或者./juejinxiaoceToolForMac便可
- 等待你的小冊出爐🍺
小白操做步驟
- 登陸掘金網站,打開你的一本小冊,以下圖:
- windows按F12,Mac使用快捷鍵conmand+shift+i,進入開發者工具,以下圖:
- 選擇XHR(意思是過濾Ajax的異步請求),刷新一下網頁,找到get?uid=xxx,上圖中紅色圈出部分。點擊get?uid=xxx部分,能夠看到該API的請求與返回等信息,其實就是咱們須要的uid,id,token等,以下圖所示:
- 能夠點擊response查看該API的返回信息,對於golang來講也是構造結構體的關鍵,具體可查看代碼;
- 經過這個API咱們能夠獲取sectionId的一個數組,每個sectionId就對應文章中的一節,在第filter中搜索
getSection
,該API就是獲取指定sectionId的內容;
上面所用的URL我都放到了config/config.json裏面,能夠直接使用。golang
以上是基本操做,搞定以後,就執行go run main.go
等待你的小冊出爐🍺。json
能夠看到MarkDown格式和mobi格式的書籍都已經下載。windows
最後要說的是,本博客僅作技術分享,做者創做小冊都不容易,你們下載後不要傳播。