背景
因书城改版,无法通过此方式进行下载,请各位绕行。
改版后书城由原有单页面切割为六页面,涉及合成。
原有的jwt key已失效,无法进行获取。
最近在备考软考,在文泉书城买了本PDF书籍,发现不能下载,只能在线阅读,大大降低了学习效率,于是在网上找了些下载方法及软件,主要有以下几种方式。
油猴脚本:https://github.com/Kevin0z0/wenquan-pdf-download (本人愚钝,未测试成功)
程序:https://github.com/SweetInk/wqxuetang-pdf-downloader (下载过程中会出现异常,导致下载中断,不是很好用)
浏览器插件:图片助手插件,可直接提取已经生成的图片。需要一页一页的去翻,而且有时会导致缺页啥的。我是用这个方法下载的,耗费一天的时间整理页面及合成。
在使用浏览器插件下载之前就想开发个软件,对图片进行爬取下载。但是里面涉及了jwt加密算法,有个key获取不到,就放弃了。
在学习的过程中,发现下载图书的质量不太好,想着是不是和下载方式有关系(后来通过证实,好像没有关系。因为我爬取的页面也是一样的分辨率。),因此我又动了去写软件下载的想法。深入了解了一下别人的源码(即上方提到的SweetInk开源的代码),找到了逆向的key(我感觉后期有可能会进行变更,导致我现在的程序也会失效。)。
实现方式
软件实现的原理同SweetInk的方法基本差不多,就是改成了交互式的窗口了,集成了把图片合成PDF的功能,PDF是可以带索引的。
本来打算通过微信扫码来登录进行下载的,但是因为验证后有个302的跳转,好像无法进行授权,折腾一顿后,一是太麻烦不想搞了,二是技术太菜,搞不了。就放弃了,使用了Cookie的方式进行验证。
首先需要设置Cookie,否则只能下载30页,即官方给的可以试读的页面数量。把下图的Cookie复制到软件的Cookie的设置里面并进行确认。
在PDF预览地址的位置输入图书的预览地址,然后点击获取书籍信息。Cookie设置没有问题,会显示可下载数和页面总数是一致的。最后点击下载,即可。为了避免官方服务器反爬取的问题,设置下载时间为5S一张,也增加了代理功能可以设置代理IP(个人感觉也没啥用处,通过测试好像官方针对10张照片时长有限制)。
图片会下载至软件的目录中,下载完成后,点击合成PDF进行合成。即可在目录中生成PDF文件。
https://gitee.com/wlzscn/wenquan-publishing-house
2022年4月21日15:33:49
评论区