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仍是有很多好用的工具。

最后要说的是,本博客仅作技术分享,做者创做小册都不容易,你们下载后不要传播。

相关文章
相关标签/搜索