背景:
项目思路:
项目的思路比较简单,分为下面几个步骤。
- 分析掘金小册站点,我们每次点击一个章节,都会发现URL的后面一串会发生变化,于是怀疑这一串字符就是每章节的ID,于是首先要获取的就是整个小册的所有章节ID;
- 经过上面思路的寻找,就找到了XHR请求中
get?uid这个请求,看了一下response,果然有一串是sectionID; - 拿到所有章节ID后,就要找获取章节内容的API,这时你可以在开发者工具的filter中,搜索section(直觉),可以找到
getSection?uid的API,打开一看,果然就是根据sectionID获取内容; - 所有API找到后,就可以构造参数,爬取你想要的内容了。
Github README
直接把GitHub上的README拿过来了,写的比较详细,适合小白入手。
将你的掘金小册装进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里面,可以直接使用。
以上是基本操作,搞定之后,就执行go run main.go等待你的小册出炉🍺。
可以看到MarkDown格式和mobi格式的书籍都已经下载。
- 项目地址:github.com/hantmac/jue…
- 其实这个mobi格式转的并不是特别好,如果大家有什么好的方法,求分享!
- 如果Golang没有好用的包的话,后面会出Python版本,Python还是有不少好用的工具。