南充市住房和城乡建设厅官方网站,抚远网站建设,部门网站建设注意事项,1元域名免备案我们看一下scrapy的系统架构设计方法和思路#xff1a;
模块化设计#xff1a;
Scrapy采用模块化设计#xff0c;将整个系统划分为多个独立的模块#xff0c;包括引擎#xff08;Engine#xff09;、调度器#xff08;Scheduler#xff09;、下载器#xff08;Downl…我们看一下scrapy的系统架构设计方法和思路
模块化设计
Scrapy采用模块化设计将整个系统划分为多个独立的模块包括引擎Engine、调度器Scheduler、下载器Downloader、爬虫Spider、项目管道Item Pipeline等。每个模块都负责处理特定的任务并通过标准化的接口与其他模块进行通信。这种设计使得Scrapy的各个部分可以独立开发、测试和扩展提高了系统的可维护性和可扩展性。
异步IO处理
Scrapy使用Twisted库来实现异步IO处理这使得Scrapy能够同时处理多个网络请求大大提高了爬虫的效率。异步IO处理允许Scrapy在等待网络响应的过程中继续执行其他任务避免了阻塞操作导致的资源浪费。
数据流设计
Scrapy通过引擎Engine来控制数据流在系统中的流动。引擎负责接收和处理来自爬虫、调度器和下载器的请求和响应并根据需要触发相应的事件。数据流的设计使得Scrapy能够灵活地处理各种数据抓取任务并支持多种数据处理方式如数据清洗、验证和存储等。
中间件机制
Scrapy提供了下载器中间件Downloader Middlewares和爬虫中间件Spider Middlewares两种中间件机制。这些中间件可以插入到Scrapy的数据流中对请求和响应进行预处理和后处理从而实现对爬虫功能的扩展和定制。中间件机制使得用户可以根据需要添加自定义的代码逻辑以满足特定的数据抓取需求。
scrapy设计的还是很牛的但是这么强大的工具我们学习和使用都需要一定的成本我们还是写一个简单易学易用的scrapy 分析一下核心功能
http网络请求返回结果的标准化解析筛选需要的信息保存
http 网络请求 我们使用 requests 第三库来实现返回结果使用 lxml 的 etree 库来解析保存信息目前选择使用excel 和mysql数据库两种方式
流程图如下