• Scrapy框架解读


    1. Scrapy组件
    a. 主体部分
    i. 引擎(Scrapy):处理整个系统的数据流处理,触发事务(框架核心)
    ii. 调度器(Scheduler):
    1) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回。
    2) 类似一个URL的优先队列, 由它决定下一个要抓取的网址, 同时去除重复的网址
    iii. 下载器(Downloader)
    1) 用于下载网页内容, 并将网页内容返回给爬虫(spiders)
    2) Scrapy下载器是建立在twisted这个高效的异步模型上的
    iv. 爬虫(Spiders)
    1) 爬虫从特定的网页中提取自己需要的信息, 即所谓的实体(Item)
    2) 用户也可以从中提取出链接,让Scrapy继续抓取下一个页面
    v. 项目管道(Pipeline)
    1) 负责处理爬虫从网页中抽取的实体
    2) 功能:持久化实体、验证实体的有效性、清除不需要的信息。
    3) 当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
    b. 中间件
    i. 下载器中间件(Downloader Middlewares)
    1) 介于Scrapy引擎和下载器之间的框架
    2) 处理Scrapy引擎与下载器之间的请求及响应
    ii. 爬虫中间件(Spider Middlewares)
    1) 介于Scrapy引擎和爬虫之间的框架
    2) 处理蜘蛛的响应输入和请求输出。
    iii. 调度中间件(Scheduler Middewares)
    1) 介于Scrapy引擎和调度之间的中间件
    2) 从Scrapy引擎发送到调度的请求和响应。
    2. 运行流程
    a. 引擎从调度器中取出一个链接(URL)用于接下来的抓取
    b. 引擎把URL封装成一个请求(Request)传给下载器
    c. 下载器从Internet中把资源下载下来,并封装成应答包(Response)
    d. 爬虫解析Response
    i. 解析出实体(Item),则交给实体管道进行进一步的处理
    ii. 解析出的是链接(URL),则把URL交给调度器等待抓取

  • 相关阅读:
    Thrift实现C#调用Java开发步骤详解
    微信小程序项目实战之豆瓣天气
    带有关闭按钮的alertView
    基于olami开放语义平台的微信小程序遥知之源码实现
    iOS-仿智联字符图片验证码
    微信 支付宝支付 友盟登录分享 统计
    优化VMware提高虚拟机运行速度的技巧
    区块链与密码学
    在 Ubuntu 16.04 中安装支持 CPU 和 GPU 的 Google TensorFlow 神经网络软件
    Ubuntu+anaconda环境里安装opencv
  • 原文地址:https://www.cnblogs.com/greatljg/p/10182233.html
Copyright © 2020-2023  润新知