一 Scrapy爬虫框架介绍
框架简介
是基于python实现爬虫的重要技术路线。scrapy不是一个函数功能库,而是一个爬虫框架。
包括7个部分 :5+2结构 5个主题部分,2个中间键。
5个主模块:Spiders+ DOWNLOADER+ ENGINE+ SCHEDULER+ ITEM PIPELINES
Spider与 ENGINE ENGINE与DOWNLOADER有2个中间键模块(MIDDLEWARE)。
scrapy框架包含3条主要的数据流路线。
1 SPIDERS-------ENGINE------------SCHEDULER
SPIDERS通过MIDDLEWARE向ENGINE提出REQUESTS请求 (URL)再转发给SCHEDULER
2 SCHEDULER---------ENGINE-------DOWNLOADER------------ENGINE-------------SPIDERS
最终Spiders接受到 RESPONSE对象(响应)
3 SPIDERS--------ENGINE-------ITEM PIPELINES+SCHEDULER
SPIDER处理从Downloder获得的响应,处理后产生2个数据类型 一个是爬取项SCRAPYITEMS/items 另外一个是新的爬取请求(网页中存在新的我们也需要爬取信息的链接)。发送给ENGINE模块。ENGINE将ITEMS发送给ITEM PIPELINES,将REQUESTS发送给SCHEDULER进行调度。
因此框架的入口是SPiders 出口是ITEM PIPELINES 剩下的3个模块是已有的功能模块,用户不需要编写。需要编写(配置)的是2个入口模块。(这两个模块已有相关模板代码,需要根据需要进行修改)
SPIDERS用于向整个框架提供URL链接,同时解析从网络上获取的页面的内容。
ITEM PIPELINES负责对提取的信息进行后处理。
Engine模块:控制模块之间的数据流。根据条件触发事件。不需要用户修改。
Downloder: 根据请求下载网页。不需要用户修改。
Scheduler模块:对所有爬取请求进行调度管理。不需要用户修改。
Spider模块:
解析Downloder返回的响应(Response),产生爬取项(scraped item),产生额外的爬取请求(Request)
Item Pipelines :
以流水线方式处理Spider产生的爬取项。
由一组操作顺序组成,类似流水线,每个操作是一个Item Pipeline类型。
可能的操作包括:清理,检验,和查重爬取项中的HTML数据,将数据存储到数据库。
Scrapy爬虫常用命令
scrapy是为持续运行设计的专业爬虫框架。scrapy命令行格式为:>scrapy<command>[options][args]
在终端输入 scrapy -h可以看到常用命令
一个工程相当于一个大的Scrapy框架,一个Scrapy框架可以有多个爬虫,每一个爬虫相当于框架中的一个Spider。
最常用的scrapy命令为1 2 4