Spider是Scrapy户编写于分析response并提取item(即获取到的item)或额外跟进的URL的类。
每个spider负责处理个特定(或些)站。 更多内容请看 Spiders 。
•
Item Pipeline
Item Pipeline负责处理被spider提取出来的item。典型的处理有清理、 验证及持久化(例如存取到数
据库中)。 更多内容查看 Item Pipeline 。
•
数据流(Data flow)
Scrapy中的数据流由执引擎控制,其过程如下:
引擎打开个站(open a domain),找到处理该站的Spider并向该spider请求第个要爬取的
URL(s)。
引擎从Spider中获取到第个要爬取的URL并在调度器(Scheduler)以Request调度。
引擎向调度器请求下个要爬取的URL。
调度器返回下个要爬取的URL给引擎,引擎将URL通过下载中间件(请求(request)向)转发给下载
器(Downloader)。
旦下载完毕,下载器成个该的Response,并将其通过下载中间件(返回(response)
向)发送给引擎。
引擎从下载器中接收到Response并通过Spider中间件(输向)发送给Spider处理。
Spider处理Response并返回爬取到的Item及(跟进的)新的Request给引擎。
引擎将(Spider返回的)爬取到的Item给Item Pipeline,将(Spider返回的)Request给调度器。
(从第步)重复直到调度器中没有更多地request,引擎关闭该站。
三.
scrapy-redis 架构
如上图所,scrapy-redis在scrapy的架构上增加了redis,基于redis的特性拓展了如下组
件:
•
调度器(Scheduler):
评论