背景:
不知不觉在掘金买了好几本小册了,基本没怎么看,在电脑或者手机上看,看一会就以为累,还要打开掘金的网站,找到本身的小册,零碎的时间根本用不上。平时本身用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
最后要说的是,本博客仅作技术分享,做者创做小册都不容易,你们下载后不要传播。