欢迎下载程序到本地免费使用与测试,作者用自己(想了想不知道用什么)担保其绝对绿色安全无广告,同时有对产品有自己的想法,意见,和遇到八阿哥(Bug)欢迎到群里( QQ群号:424704515)交流(搞基)。
程序使用说明
程序运行注意
运行该程序,必须保证电脑里面有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多线程程序的实现
下载程序流程图
每个函数的参数及作用详见后期开放的代码
由于此程序是某人毕业设计,毕业后再考虑开源部分代码