scrapy爬虫框架
scrapy是一个使用Python编程语言编写的爬虫框架,任何人都可以根据自己的需求进行修改,并且使用起来非常方便。他可以应用在数据采集,数据挖掘,网络异常用户检测,存储数据等方面。
scrapy使用了Twisted异步网络库来处理网络通讯。
框架的组成:
1. scrapy engine:引擎
整个框架的核心,负责框架中的数据的流动
2.scheduler:调度器
从引擎接受requestsu,并且让其进入队列,按照调度的规则吧requests发送给Downloader
3.Downloader:下载器
发送请求并接受响应,把响应交给spiders
4.spiders:爬虫(解析器)
解析url和data
url:通过引擎交给调度器
data:通过引擎交给item pipeline
5.item pipeline:数据管道
接受items,并保存
流程:
1.引擎从spider处获得爬取请求(request)
2.Eengine(引擎)将爬取请求转发给Scheduler(调度器),用于调度
3.Engine(引擎)从Scheduler(调度器)处获得下一个要爬取的请求
4.Engine(引擎)将爬取请求通过中间件发送给Downlooader(下载器)
5.爬取网页后,Downloader(下载器)形成响应(Response)通过中间件 发送给Engine(引擎)
6.Engine(引擎)将收到的响应通过中间件发送给Spider处理
7.spider处理响应后产生爬取项(scraped Item)和新的爬取请求(Requests)发送给Engine(引擎)
8.Engine(引擎)将爬取项发送给Item Pipeline(项目管道)
9.Engine(引擎)将爬取请求发送给Scheduler(调度器)
总结:
引擎控制个模块数据流,不间断从调度器处获得爬取请求,直到请求为空。整个框架从spider的初始爬取请求开始——直到item结束。