scrapy的框架原理

最近想搞懂srapy,读了很多资料觉得这张图最好理解

5+2模式

五个模块

SPIDERS:能提出需求产生爬取项item,爬取请求requests,解析响应response

ENGINE:控制数据流,提供事件触发,核心部分

SCHEDULER:接收请求,调度请求

DOWNLOADER:工作模块,根据提供请求进行连接获取响应

ITEM PIPELINES:以流水线获取SPIDERS产生的爬取项,由一组操作顺序组成,类似流水线,每个操作是一个ITEM PIPLINE类型,包括清理检验去重和导入数据库

两个中间键

DOWNLOADER  MIDDLEWARE:在ENGINE,SCHEDULER,DOWNLOADER之间修改,丢弃或新增请求或响应

SPIDER MIDDLEWARE:在SPIDER,ENGINE之间,对sipder产生的请求或爬取项进行再处理,修改,丢弃或新增请求或爬取项

三条路线:

1.spiders-REQUESTS-engine-REQUESTS-scheduler:用户提出需求,请求调度

2.scheduler-REQUESTS-engine-REQUERSTS-downloader-RESPONSE-engine-RESPONSE-spider:真实爬取请求下载,返回响应内容

3.spiders-ITEMS/TEQUESTS-engine-ITEMS-item pipelines-REQUESTS-scheduler:存储数据,提出新的请求

 

SPIDERS是入口,ITEM PIPELINES是出口,这两个模块也是用户主要操作的模块

SCHEDULER,ENIGINE,DOWNLOADER已有功能实现,完成既定内容,配置模块

 

与requests库比较:

可以进行网页请求与爬取

无法应对JS和验证码

并发性好,一般性定制灵活,深度定制困难

 

常用命令总结

命令行scrapy -h

结构:scrapy <command>[options][args]

startproject 创建新工程         scrapy startproject <name>[dir]

genspider   创建一个爬虫        scrapy genspider [options]<name><domiain>

settings    获得爬虫配置信息      scrapy settings [options]

crawl     运行一个爬虫        scrapy crawl <spider>

list       列出工程中所有爬虫  scrapy list

shell    启动URL调试命令行  scrapy shell [URL]

posted @ 2018-07-24 22:19  朝游碧海暮苍梧  Views(205)  Comments(0Edit  收藏  举报