基于Scrapy实现Scrapy_plus框架

源码Github链接https://github.com/ChenJhua/Projects/tree/master/Project

首先分析Scrapy的流程

这里写图片描述

从流程中抽取对象

三个内置对象:

 请求对象(Request)
 响应对象(Response)
 数据对象(Item)

五个核心组件:

 爬虫组件
     构建请求信息(初始的),也就是生成请求对象(Request)
     解析响应对象,返回数据对象(Item)或者新的请求对象(Request)
 调度器组件
     缓存请求对象(Request),并为下载器提供请求对象,实现请求的调度
     对请求对象进行去重判断
 下载器组件
     根据请求对象(Request),发起HTTP、HTTPS网络请求,拿到HTTP、HTTPS响应,构建响应对象(Response)并返回
 管道组件
     负责处理数据对象(Item)
 引擎组件
     负责驱动各大组件,通过调用各自对外提供的API接口,实现它们之间的交互和协作
     提供整个框架的启动入口

两个中间件:

 爬虫中间件
     对请求对象和数据对象进行预处理

 下载器中间件
     对请求对象和响应对象进行预处理

五个核心模块和三个内置的对象是关键模块,需要优先实现
先抛开中间件,分析下它们之间的逻辑关系是:

构造spider中start_urls中的请求
传递给调取器进行保存,之后从中取出
取出的request对象交给下载组件进行下载,返回response
response交给爬虫模块进行解析,提取结果
如果结果是request对象,重新交给调度器,如果结果是item对象,交给管道处理

以上的逻辑是在引擎中完成的
对应的他们在引擎中的逻辑如下图:

这里写图片描述

源码目录结构图

Project

这里写图片描述

scrapy_plus

这里写图片描述

具体实现看Github的代码,就不在这里复制粘贴了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值