Scrapy框架介绍

一、什么是Scrapy

        是一款快速而强大的web爬虫框架,基于Twusted的异步处理框架

        Twisted是事件驱动的

        Scrapy是由Python实现的爬虫框架

                ① 架构清晰

                ②可扩展性强

                ③可以灵活完成需求

二、核心组件

  • Scrapy Engine(引擎):Scrapy框架的核心,负责控制整个系统的数据流和各个组件之间的通讯。它接收来自Spiders的请求,并发送给Scheduler(调度器),同时处理下载器返回的响应,再交给Spiders进行解析。
  • Spiders(爬虫):用户自定义的类,用于解析下载的页面内容并提取所需的数据,或者发送新的请求以进一步抓取数据。
  • Item Pipelines(项目管道):负责处理Spiders提取出来的数据,进行数据的清洗、验证和存储等后续操作。
  • Downloader(下载器):负责下载Scrapy Engine发送的所有请求,并将获取到的响应返回给Scrapy Engine。下载器是建立在Twisted这个高效的异步模型上的,能够处理大量的并发请求。
  • Scheduler(调度器):接受Scrapy Engine发送过来的请求,并按照一定的策略进行整理排列,然后将请求发送到Downloader。它相当于一个URL的优先队列,能够去除重复的URL。
  • Downloader Middlewares(下载器中间件):位于Scrapy Engine和Downloader之间,主要用于处理Scrapy Engine和Downloader之间的请求和响应。
  • Spider Middlewares(爬虫中间件):位于Scrapy Engine和Spiders之间,主要用于处理Spiders的输入(即响应)和输出(即请求)。

三、工作流程

  1. 初始请求:用户编写爬虫主程序,将需要下载的页面请求(Requests)递交给Scrapy Engine。
  2. 调度和去重:Scrapy Engine将请求转发给Scheduler,Scheduler按照一定的策略(如优先级和去重)将请求排列入队,并依次交给Downloader进行下载。
  3. 下载响应:Downloader下载页面并将生成的响应(Responses)返回给Scrapy Engine。
  4. 解析和提取:Scrapy Engine将响应转发给Spiders进行解析,Spiders提取出所需的数据(Items)或新的请求(Requests)。
  5. 数据处理:提取出的数据(Items)被发送到Item Pipelines进行后续处理,如清洗、验证和存储。
  6. 递归抓取:如果需要,Spiders可以发送新的请求以继续抓取数据,这个过程会重复进行,直到满足停止条件

四、特点与优势

  • 异步处理:Scrapy使用Twisted框架实现异步处理,能够显著提高数据抓取的效率和性能。
  • 扩展性强:Scrapy的架构清晰,模块之间的耦合程度低,用户可以通过编写自定义的Spiders、Item Pipelines和Middlewares来扩展Scrapy的功能。
  • 灵活性强:Scrapy支持多种数据导出格式,如JSON、CSV等,用户可以根据需要选择合适的数据导出方式。
  • 易于部署:Scrapy提供了丰富的命令行工具,使得项目的创建、运行和调试都变得非常简单和方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值