• python的scrapy框架


    scrapy是python中数据抓取的框架。简单的逻辑如下所示

    scrapy的结构如图所示,包括scrapy engine、scheduler、downloader、spider、item pipeline

    scrapy engine:引擎,是负责scheduler、downloader、spider、item pipeline之间的消息的传递等等

    scheduler:调度器,是负责接受scrapy engine 的request请求,并将request进行整理排列,入队,等待scrapy engine来请求时,交给引擎

    downloader:下载器,是用来下载scrapy engine的请求,并将response返回给spider。

    spider:爬虫,是将downloader的response,由spider分析并提取item所要抓取的数据,并将所要跟进的url再次交给scrapy engine,再次进入scheduler。

    item pipeline:项目管道,是将spider中提取到的数据,进行处理,存储。

    还有两个:

    download middlewares:下载中间件,是一个可以扩展的下载功能的组件,介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应

    spider middlewares:spider的中间件:是一个可以扩展和操作引擎和spider中间通信的功能组件(比如进入spider的response,和从spider传出去的request),介于Scrapy引擎和蜘蛛之间的钩子框架,主要工作是处理蜘蛛的响应输入和请求输出

    这俩当前还没有试过~

    经过:

    1.scrapy engine获取到spider要获取的第一个url

    2.scrapy engine将要获取的url给scheduler,并将url入队,整理,并将处理好的request请求返回

    3.scrapy engine将处理好的request给downloader,通过downloader下载数据,如果下载失败,会将下载失败的结果告诉scrapy engine,然后会让scrapy engine等会再次请求下载。

    4.scrapy engine获取到downloader下载的数据,并且将数据给spider,经由spider进行数据处理,spider将需要跟进的request交给scrapy engine,将处理的结果返回给item pipeline

    5.item pipeline将spider反悔的结果进行去重,持久化,写入数据库等操作。

    只有当scheduler中没有任何request了,整个过程才会停止。

  • 相关阅读:
    谷歌开发调试工具
    由form表单来说说前后台数据之间的交互
    ajax的post和get请求的使用
    css各属性的理解
    Http Servlet详解及学习地址
    表单详细解释
    JS正则表达式
    jQuery-AJAX简介
    POJ1008 Maya Calendar
    关于Code Blocks无编译器版本及VC6.0插入、打开报错
  • 原文地址:https://www.cnblogs.com/chenyang920/p/7874080.html
Copyright © 2020-2023  润新知