首页 > 其他分享 >爬虫学习-05

爬虫学习-05

时间:2022-12-07 15:23:30浏览次数:34  
标签:请求 05 爬虫 学习 引擎 SPIDERS EGINE REQUESTS

一、scrapy架构介绍

按图流程走

具体释义

流程词 中文释义 使用
EGINE 引擎 引擎负责控制系统所有组件之间的数据流动,并在某些动作发生时触发事件。有关详细信息,请参见上面的数据流部分。
SCHEDULER 调度器 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL的优先级队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址。
DOWLOADER 下载器 用于下载网页内容, 并将网页内容返回给EGINE,下载器是建立在twisted这个高效的异步模型上的。
SPIDERS 爬虫 主要是这里写代码:SPIDERS是开发人员自定义的类,用来解析responses,并且提取items,或者发送新的请求
ITEM PIPLINES 项目管道 在items被提取后负责处理它们,主要包括清理、验证、持久化(比如存到数据库)等操作
Downloader Middlewares 下载器中间件 位于Scrapy引擎和下载器之间,主要用来处理从EGINE传到DOWLOADER的请求request,已经从DOWNLOADER传到EGINE的响应response,你可用该中间件做以下几件事:设置请求头,设置cookie,使用代理,集成selenium
Spider Middlewares 爬虫中间件 位于EGINE和SPIDERS之间,主要工作是处理SPIDERS的输入(即responses)和输出(即requests)

流程走向

  • 起始爬取的地址从SPIDERS(我们写的一个个爬虫)出发经过中间件MIDDLEWARE组装成请求对象REQUESTS
  • 进入引擎EGINE经过调度器SCHEDULER排队等待和去重(因为可能有很多的REQUESTS需要排队,里面有爬过的地址去重)
  • 进入引擎EGINE发现是REQUESTS进入第下载器DOWNLOADER开始向互联网发送http请求,返回来之后DOWNLOADER把之前REQUESTS对象做成RESPONSE对象
  • 经过第步发现是RESPONSE对象进入第步引擎给SPIDERS解析
  • 解析完两种情况
    • 第一种接着爬取,REQUESTS对象接着走第
    • 第二种存起来,走第ITEMS(保存数据的对象)走第步来到管道ITEM PIPLINES做持久化存储,然后看是存在数据库或文件或redis里

 

标签:请求,05,爬虫,学习,引擎,SPIDERS,EGINE,REQUESTS
From: https://www.cnblogs.com/zzjjpp/p/16963034.html

相关文章

  • k8s学习笔记
    k8s基本概念CNI网络插件Flannelk8s常用命令apply与replace的区别将文件复制到容器或从容器中复制出来kubectl命令操作pod查看容器日志操作标签(labels)......
  • 前端学习之------树形列表转list
    1、树形数据为:2、方法letresult=[]//结果数组lettreeToList=(treeArr)=>{treeArr.forEach(treeitem=>{result.push({id:treeitem.i......
  • 学会待办任务清单法,学习效率可提高
    无论是对于大学生还是上班族来说,持续学习的能力都是必不可少的,如果不能够与时俱进的学习各类新事物,就会被时代所抛弃,例如我们可以利用每天的空余时间学习写作、新媒体运营......
  • 机器学习--Kmeans聚类算法
    1.1概述K-means算法是集简单和经典于一身的基于距离的聚类算法采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为类簇是由距离靠近的对象......
  • 机器学习--CF协同过滤推荐算法原理
    1.1概述什么是协同过滤(CollaborativeFiltering,简称CF)?首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最......
  • typeScript学习
    typeScript配置文件如果一个目录下存在一个tsconfig.json文件,那么它意味着这个目录是TypeScript项目的根目录。tsconfig.json文件中指定了用来编译这个项目的根文件和编......
  • FastBoot BootLoader Recovery 模式学习
    概念简单介绍fastboot是一种协议,是一种通过USB连接与bootloader通讯的机制。它被设计的非常容易实现,适用于Linux、Windows或者macOS等多种平台。fastboot是Android系统提......
  • Python爬虫实战,requests模块,Python爬取网易云歌曲并保存本地
    前言今天给大家简单演示的爬取了一下某易云歌曲的排行榜信息,最后将音乐保存到本地开发工具Python版本:3.6.4相关模块:requests模块re模块os模块环境搭建安装Pyth......
  • 1118及之后的单片机学习记录
    1.枚举类型是一种基本数据类型,其中一个枚举成员所占大小4个字节;对枚举变量的赋值只能通过将一个值强制类型转换为它本身的枚举成员然后进行赋值(不可以对枚举成员赋值,不可......
  • 脚本文件阅读学习及流数据处理复盘
    1.#!/bin/bash作为第一行代码,将指定shell脚本解释器的路径,并会给注释加粗的显示。乱写或不写虽然报错但也可以执行,解释器会选择默认路径进行解释执行。2.机芯给的原始......