格格文库下载器

欢迎下载程序到本地免费使用与测试,作者用自己(想了想不知道用什么)担保其绝对绿色安全无广告,同时有对产品有自己的想法,意见,和遇到八阿哥(Bug)欢迎到群里( QQ群号:424704515)交流(搞基)。

github下载链接

程序使用说明

程序运行注意

  • 运行该程序,必须保证电脑里面有Firefox浏览器。

  • 同时在运行该程序时,尽量不要打开和操作火狐浏览器(Firefox)。

实现的意义

支持对百度文库能浏览的学习,资料,文章(pdf,word,txt,ppt)便利(免登陆,消费劵)和稳定的(支持复杂图表word文档)的下载到本地,并应对大量的文章支持多进程高效的批量下载。

声明:本程序原理仅是模拟浏览器截图到本地,开放的初衷是方便使用者下载文档资料到本地离线学习使用,无盈利目的,更请勿利用此程序下载的文档牟取盈利。同时百度文库上文档也都是百度账号的用户自愿上传,不存在侵权行为。

实现的主要功能

  • 将多张图片合成pdf文件。

  • 文件下载到本地的路径可自由设置。

  • 对下载PDF文件,可设置其分辨率的大小即文件大小。

  • word,pdf文件,下载为超高清的pdf文件;txt文件,还原下载为txt文件。ppt文件,下载为高清图集。

  • 对多个文件实现多进程的批量下载,可设置多进程同时下载的进程数(默认为4),极大加快大量文件下载速率和和简化了操作。

  • 加入sqlite3数据库,对下载的历史记录进行保存,删除,方便回顾。

与他文库下载器和爬虫程序的对比

优点:
  • 相比Github上目前其他爬文库程序,它们简单只对txt,word等文档只有文字内容的解析,遇到带有格式或者表格的文档无法还原,几乎没有做什么处理。而此程序完美的还原word,pdf,ppt,txt,文档。

  • 目前网络上类似文库爬取文档下载的软件口碑最好是冰点文库,相比冰点文库,实现了和它一样的技术同时也先实现多进程的批量下载,完善高效的下载功能。

  • 相比冰点文库的广告,此程序原创,无广告,绿色,安全。
缺点:
  • 冰点文库已经有很长迭代式开发周期,功能更完善,运行更稳定,几乎支持所有的主流文库,相比之下此程序支持网站目前只有百度文库。
  • 冰点文库使用C语言以及C语言相关的库进行开发,程序运行速度效率快于此程序,但针对单个文件下载差别几秒钟不是很显著。

目前缺陷和有待改进地方

  • 设计一个简洁(陋)的UI界面,使交互更友好。
  • 将程序浏览器的内核驱动修改成IE浏览器内核,降低其使用成本。
  • 对其他开放的资料文库实现下载功能,比如知网,道客,360cc(待补充)。
  • 多测试一下程序八阿哥(BUG),使其更稳定。

主界面部分功能的说明:

【2】.批量下载百度文库文档功能:

​ 使用此功能前,需要编辑与软件同一目录的 DownloadUrls.txt文件,没有则新建该文件,在里面写入需要批量下载网页链接,一行一个网页链接。

【3】.设置下载PDF文件分辨率:

​ 不同分辨率的参数,决定下载下pdf文件的分辨率参数与大小,分辨率越高,文件越清晰,文件容量越大。

【7】.设置批量下载时多进程的数量

​ 理论上,进程设置数最多为使用者电脑CPU的核数,保证同时有最多不同进程在同时下载不同文件,但考虑程序性能内存占用,推荐设置为4,表示批量下载时最多有四个不同文件同时下载。

程序开发说明

实现需要技术:

  • 对计算机网络HTTP协议理解,使用python的requests库解析服务器返回response的各种资源(html,json等)。
  • 使用测试工具selenium模拟对浏览器各种操作。
  • 利用测试工具selenium与解析库Beautifulsoup的CSS选择器方式对网页元素的定位与解析。
  • python多线程程序的编写 。
  • 调用reportlab库将多张图片合成一个pdf文件。
  • python与sqlites3数据库操作。

实现主要难点:

  • 对百度文库不同类型文件的下载策略的分析(pdf,txt,ppt文件的解析方式都不相同):

  • 选择selenium + firefox截图方案,并配置环境

  • selenium操作浏览器的一些细节(为了要截图时干净,要对网页除文章以外广告等元素隐藏,删除,更新等)

  • 百度动态加载每一页内容,需要边滑动浏览器,边截图当前页面。

  • 当前浏览器截图时浏览器大小等参数需要调试,使截出图片高清无瑕疵。

  • python多线程程序的实现

下载程序流程图

流程图

每个函数的参数及作用详见后期开放的代码

​ 由于此程序是某人毕业设计,毕业后再考虑开源部分代码

开发过程(待补充)

实现的过程参考资料工具:

扫码也许会变得更强~!