如果能用最简单的方法(小型库组合)实现需求,就无需使用更复杂的方法。杀鸡焉用牛刀(scrapy)
- 代码结构清晰,容易理解,便于技术交流
- 依赖库少,容易布署
- 使用fire和pyinstall制作成命令行和打包成可执行软件,体积非常小巧。供非程序员使用
- 通用性差,可能需要同时修改多处模块。而不是仅仅修改解析模块
- 无法短时间爬取海量数据,性能不够强大
- 容错性差
- 主要负责统筹其他四个模块的协调工作
- URL链接,维护已经爬取和未爬取的URL
- 提供获取新URL链接的接口
- 从URL管理器中获取未爬取URL
- 下载URL内容
- 从HTML下载器获取已经下载的网页,从中解析出新的URL返回URL管理器
- 将有效数据传给数据存储起
- 以某种需要的形式存储有效数据
- 存储增量爬虫所需要的历史爬取记录,用于去重复
python3.7.2
python解析器requests 2.20.1
请求库pyquery 1.4.0
解析库pymongo 3.7.2
MongoDB库fire 0.1.3
命令行制作库PyInstaller 3.4
可执行程序打包库
SpiderMan.py
爬虫调度器URLManager.py
URL管理器Downloader.py
HTML下载器Parser.py
HTML解析器DataOutput.py
数据存储器Download_log.txt
纯文本下载历史记录(程序自动生成),并没有使用数据库,是为了减少复杂度。
- 详细看代码内部注释。
- 日常使用主要修改
SpiderMan.py
和Parser.py
模块。 - 可以自行修改其他模块增加功能。例如selenium请求库,BS4解析库。或者自己定义数据结构,命令和存取方式。
- CR: 使用多线程修改代码,增加下载速度。
- CR: 增加单独的配置文件,便于多程序分享变量,传递文件名等重要信息。
- CR:优化部件代码,提升程序通用度。
- Fix:暂无
版本1.0 2019-1-30 以蜂鸟大师板块画册为例。演示基础爬虫框架。