scrapy框架
scrapy 是一个爬虫框架,能够高效率,高层次的爬取页面的数据并进行处理。
在scrapy的英文文档中,有这样的一个流程图
scrapy 框架主要分为五大部分,spider, engine,scheduler,downloader,item pipelines
spider:是用户自己编写的爬虫主程序,爬取那些网站,获取网上的什么数据,等
engine: 引擎,是scrapy爬虫框架的主体结构,负责整个框架的运转,就像电脑的cpu一样,控制着框架中数据流的流动,同时负责调动各个组件的调用。
scheduler:调度器,相当于一个牧羊人,主要是把从spider中得到的Requests 放进队列中,按照顺序排列 听从引擎的指挥。
downloader: 下载器,负责解析Requests 得到response
item pipelines :item 是爬虫程序获取的数据 ,最后存入管道里 有pipelline进行数据的处理 比如写入数据库,保存本地json文件,excel文件等方式。
其大致流程为:
启动爬虫程序的时候,引擎(engine)根据spider中的start_urls列表中的url获取Request类 交给调度器(scheduler),调度器将得到的Requests放进队列中,然后引擎从队列中取出Requests 再交给下载器(downloader),下载器得到respons响应,引擎在将得到的响应发送给spider 主程序,进行解析,会得到解析的的数据(item)和Requests 引擎将得到的数据,放入pipelines中进行数据处理(保存数据库,保存本地json文件等),得到的Requests 引擎再交给调度器,放入队列中,从这一步骤开始循环,直到spider得到数据都是item放进pipeline里面进行处理 整个爬虫程序结束。
爬虫程序结构
|--------------------------------------------SpiderTest
|-----------------------------spiders
|---------__init__.py
|--------------test.py
|-------------------------__init__.py
|----------------------------items.py
|-------------------middlewares.py
|------------------------pipelines.py
|--------------------------settings.py