

前言
小编为了省钱,找到了一个电子书网站,“书香”,小编搜了搜,有 “书香清华”
http://sxqh.chineseall.cn/org/show/1455
但不是唯一的,还有 “书香北京师范大学珠海分校”,应该是以学校为后缀。
http://bnuz.chineseall.cn/org/show/index

我们注册一个账号后,就准备开始爬取想要的电子书了。
这两个网站的结构差不多的。
爬取分析
小编选取了这个 url 作为爬取
http://bnuz.chineseall.cn/org/show/index
我们以爬取 “Android移动开发基础案例教程” 为例

打开开发者工具,翻几页发现是动态的加载的,且 url 如下

我们看到 url 中有一个参数 t,说明请求时,我们需要构造出这个参数 t,拼接 url 去请求才可以

目测可能是时间戳,我们用 time.time() 即可生成时间戳

与参数 t 对比,python 代码生成的是有小数的且取的长度不一样,乘以 1000 再使用 int() 函数可以使其与参数 t 长度一样,但 int() 是直接舍弃小数点后面的,我们不知道 t 是不是四舍五入,所以为了保证一次性请求成功,小编直接执行生成参数 t 的 js 代码,生成对应的参数 t,就绝对不会错。
小编写好了 js 生成时间戳的代码如下

在 python 中使用 execjs 执行 js 代码

这样我们爬取请求必要的参数就解决了。
其他的就直接按照爬虫逻辑写下来就好了。
注意 pdf 只能浏览前十页,想要浏览全部,需要登录,在请求头带上 cookie。
pdf 合并
爬取下来后,是一张张的 pdf 文件,文件名是以页码命名的,我们需要把全部合并为一份 pdf,代码如下:

合并后的结果如下:

合并完成后,我们就获得了一本电子书。
自己丰衣足食感觉真好,可以省钱买皮肤了。
















