Skip to main content

在scrapy的基础上进行修改,使用了远程请求,爬升速度,并与rabbitm结合,实现了断点爬升,与防漏采

项目描述

Scrapy-兔子

一、简介

基于 Scrapy 与 Rabbit 的新消息框架与 Rabbit 消息框架的结合

2.快速入门

  1. 安装

    pip install scrapy_rabbit

  2. 创建项目

    scrapy_rabbit startproject ProjectName

    • 项目名称:要创建的项目名称
  3. 创建爬虫

    scrapy_rabbit genspider SpidersClass SpiderName Url

    • SpidersClass:爬虫分类

    • 蜘蛛名:爬虫名字

    • Url:最初连接

    是否使用代理以及是否清空配置都可以在Spider中单独配置

  4. 修改配置

    在conf下config.中设置rabbit的链接方式。

  5. 指定运行方式

    scrapy_rabbit_run.png

    运行方法需要传一个,列表里第一个元素为当前爬虫分类名字,第二个元素为列表爬虫名字,第三个元素为运行模式(auto(自动):所有请求生产完成后直接开始消费。m(生产模式):只生产不消费w(消费模式):只消费不生产),第四要素为并发量

  6. 运行就可以为直接运行,或者使用流畅运行文件,spider.py就可以直接运行了python spider.py

  7. 整体目录结构

    scrapy_rabbit_tree.png

3.架构图

scrapy_rabbit.png

Spider(爬虫)负责给所有响应:引擎处理的数据,获取项目字段数据,并需要跟踪提交的URL,进入RabbitMQ

Engine(引擎):框架核心,负责Spider、RabbitMQ、Downloader、ItemPipeline的通讯、信号、数据传递等

RabbitMQ(消息):负责接受引擎发送的请求请求,并按照指定优先级存入消息

下载器(下载器):负责下载RabbitMQ中的所有请求请求,并将其获取到的响应交还给引擎,由引擎交给Spider来处理

ItemPipeline(管道):负责处理Spider中获取到的Item,并进行后期处理(详细分析、过滤、存储等)的地方

下载器中间件(下载中间件)之间的请求器是Scrapy引擎和下载中间件的主要中间件,请求器之间是Scrapy引擎与下载器的及响应处理

蜘蛛中间件(Spider中间件)主要是蜘蛛中间件(Spider中间件):工作是蜘蛛中间件和爬虫中间件,工作是蜘蛛的处理的响应输入和请求输出

4.运行流程

  1. Spider 将所有请求发送给引擎

  2. 把Url封装成一个请求(Request)传给RabbitMQ,RabbitMQ将所有的请求按照优先级保存下来

  3. 下载器下来,并封装成资源包下载(响应)则Spider,如果请求成功获取到RabbitMQ中

  4. 爬虫解析响应

  5. 解析出实体(物品),然后负责进行进一步的处理

  6. 解析出来就是链接(Url),则把Url提供引擎,封装成一个请求传给RabbitMQ等待下载

5.监控截图

兔子.png

6.待办事项

  • 生产结束后自动消费

  • Spiders 里可以指定ItemPipeline

  • 请求失败重新返回到消息

  • 支持中间件

  • 与陡峭的连接

  • 可以在Spider里指定RabbitMQ

  • 日志日志需要整理

  • 脚本采集信息以及日志存入MongoDB

  • 使用平台化来开发爬虫

  • 对当前项目下的所有爬虫进行控制

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

scrapy_rabbit-0.2.9.tar.gz (37.1 kB 查看哈希)

已上传 source