Skip to content

Latest commit

 

History

History
70 lines (56 loc) · 8.98 KB

README.md

File metadata and controls

70 lines (56 loc) · 8.98 KB

多线程持续型图片爬虫

这是一个多线程持续型图片爬虫,用于每两小时爬取指定网站及其直接关联的网页的页面图片,并将图片存储于本地 MongoDB 数据库中。请注意,该爬虫并不具有广泛适用性,仅适用于特定的爬取任务。

目录

其他事项

  • 项目存在许多漏洞和不足,暂无继续优化打算
  • English

开发环境

库名 版本号 备注
Vscode 1.63 编辑器
conda 4.13.0 软件包和环境管理系统
python 3.9.7 编程语言
bs4 4.10.0 Python 第三方库
requests 2.27.1 Python 第三方库
selenium 3.141.0 Python 第三方库
pymongo 3.12.0 Python 第三方库
apscheduler 3.7.0 Python 第三方库
Edge 103.0.1264.62 浏览器
msedgedrive 103.0.1264.62 驱动器
MongoDB 5.0.9 数据库

版本更迭

版本号 更新时间 备注
1.1.0 2022.7.14 20:11 实现静态爬取,爬取对象:中青网
1.2.0 2022.7.15 20:32 解决全页面快照;实现点击型动态爬取,爬取对象:中青网(新闻专题)
1.2.1 2022.7.16 00:12 修复漏洞;完成注释的编写
1.2.2 2022.7.16 12:10 模块化现有代码,修复漏洞
1.2.3 2022.7.16 16:23 tools 模块新增 improve_dirspath 方法,删除 spiders 模块 Spider_imgs 类的 __get_dirspath 方法;修改 tools 模块的 improve_url 及 improve_picurl 方法;tools 模块新增 init_buffertxt 方法;修改 spiders 模块 Spider_imgs 类的 __save_img 方法为 save_img 方法,此方法新增对 base64 编码图片的解码保存功能
1.3.0 2022.7.17 00:10 实现小规模持续性爬取,拓展爬取对象:中青网(新闻专题)中国网腾讯网光明网,修复漏洞
1.3.1 2022.7.17 11:04 解决 base64 编码链接存储问题;优化逻辑:先获取图片 URL 并进行去重后才进行快照拍摄
1.3.2 2022.7.17 12:21 tools 模块新增 Logger 类,用于保存与终端输出一致的日志文件;修改元数据列表:"爬取耗时/秒" -> "本地图片大小";修改了本地存储路径的文件树
1.4.0 2022.7.17 19:32 修改元数据记录方式为获取后直接记录,重构 spiders 模块中 Spider_imgs 类的 get_datalist 方法和 save_metaData 方法 -> check_sheet 方法和新的 save_metaData 方法;优化元数据列表:'本地存储'单元格新增'此程序不支持这种链接格式'提示文本;优化本地存储路径;tools 模块新增 excel_is_active 方法,spiders 模块 Spider_links 类中新增 check_sheet 方法
1.4.1 2022.7.17 21:43 决定不爬取政府网站,修改 spiders 模块的 Spider_links 类中的 ask_url 方法,实现下拉型动态爬取,如QQ新闻(教育板块);修复漏洞
1.4.2 20222.7.18 08:59 修改为使用 BackgroundScheduler 类,进行后台立即启动的周期性持续爬取;修复漏洞
1.4.3 2022.7.18 13:10 实现小规模多线程爬取图片,新增过程锁;分离图片下载和元数据存储;修复漏洞
1.4.4 2022.7.18 16:01 采用 MongoDB 代替 Excel 存储元数据
1.5.0 2022.7.19 23:06 采用 MongoDB 代替文件系统存储目标图片,修复漏洞
1.5.1 2022.7.20 13:41 采用 MongoDB 代替文件系统存储快照图片(快照图片和目标图片均以二进制形式使用 gridfs 模块进行存储),删除 tools 模块多余的函数方法

参考网站