Golang爬蟲實踐-將你的掘金小冊裝進kindle

背景:

不知不覺在掘金買了好幾本小冊了,基本沒怎麼看,在電腦或者手機上看,看一會就以爲累,還要打開掘金的網站,找到本身的小冊,零碎的時間根本用不上。平時本身用kindle比較多,就像把掘金小冊裝進kindle多好,就算批量下載到電腦上,也比打開掘金網站找小冊強,因而就產生了這個項目。

項目思路:

項目的思路比較簡單,分爲下面幾個步驟。git

  1. 分析掘金小冊站點,咱們每次點擊一個章節,都會發現URL的後面一串會發生變化,因而懷疑這一串字符就是每章節的ID,因而首先要獲取的就是整個小冊的全部章節ID;
  2. 通過上面思路的尋找,就找到了XHR請求中get?uid這個請求,看了一下response,果真有一串是sectionID;
  3. 拿到全部章節ID後,就要找獲取章節內容的API,這時你能夠在開發者工具的filter中,搜索section(直覺),能夠找到getSection?uid的API,打開一看,果真就是根據sectionID獲取內容;
  4. 全部API找到後,就能夠構造參數,爬取你想要的內容了。

Github README

直接把GitHub上的README拿過來了,寫的比較詳細,適合小白入手。github


將你的掘金小冊裝進kindle

  1. 下載掘金小冊保存爲MarkDown的格式
  2. 下載掘金小冊保存爲mobi格式

注意:轉成mobi用的是這個項目,只支持一級目錄和二級目錄,致使目前mobi格式比較亂,裏面的圖片沒有處理,若是你有好用的轉mobi的工具或者代碼,必定提issue告訴我,或者直接contribute.

使用方法

  • 從掘金小冊的站點獲取client_id,uid,token等信息,填入./config/config.json中
  • go run main.go
  • 對於沒有Go環境的小夥伴,在tool文件夾中已經編譯好了Linux&Mac版本的可執行文件,./juejinxiaoceToolForLinux或者./juejinxiaoceToolForMac便可
  • 等待你的小冊出爐🍺

小白操做步驟

  1. 登陸掘金網站,打開你的一本小冊,以下圖:

  1. windows按F12,Mac使用快捷鍵conmand+shift+i,進入開發者工具,以下圖:

  1. 選擇XHR(意思是過濾Ajax的異步請求),刷新一下網頁,找到get?uid=xxx,上圖中紅色圈出部分。點擊get?uid=xxx部分,能夠看到該API的請求與返回等信息,其實就是咱們須要的uid,id,token等,以下圖所示:

  1. 能夠點擊response查看該API的返回信息,對於golang來講也是構造結構體的關鍵,具體可查看代碼;
  2. 經過這個API咱們能夠獲取sectionId的一個數組,每個sectionId就對應文章中的一節,在第filter中搜索getSection,該API就是獲取指定sectionId的內容;

上面所用的URL我都放到了config/config.json裏面,能夠直接使用。golang

以上是基本操做,搞定以後,就執行go run main.go等待你的小冊出爐🍺。json

能夠看到MarkDown格式和mobi格式的書籍都已經下載。windows


  • 項目地址:github.com/hantmac/jue…
  • 其實這個mobi格式轉的並非特別好,若是你們有什麼好的方法,求分享!
  • 若是Golang沒有好用的包的話,後面會出Python版本,Python仍是有很多好用的工具。

最後要說的是,本博客僅作技術分享,做者創做小冊都不容易,你們下載後不要傳播。

相關文章
相關標籤/搜索