在scrapy的基础上进行修改,使用了远程请求,爬升速度,并与rabbitm结合,实现了断点爬升,与防漏采
项目描述
Scrapy-兔子
一、简介
基于 Scrapy 与 Rabbit 的新消息框架与 Rabbit 消息框架的结合
2.快速入门
安装
pip install scrapy_rabbit创建项目
scrapy_rabbit startproject ProjectName
- 项目名称:要创建的项目名称
创建爬虫
scrapy_rabbit genspider SpidersClass SpiderName Url
SpidersClass:爬虫分类
蜘蛛名:爬虫名字
Url:最初连接
是否使用代理以及是否清空配置都可以在Spider中单独配置
修改配置
在conf下config.中设置rabbit的链接方式。
指定运行方式
运行方法需要传一个,列表里第一个元素为当前
爬虫分类名字,第二个元素为列表爬虫名字,第三个元素为运行模式(auto(自动):所有请求生产完成后直接开始消费。m(生产模式):只生产不消费w(消费模式):只消费不生产),第四要素为并发量。运行就可以为直接运行,或者使用流畅运行文件,spider.py就可以直接运行了
python spider.py。整体目录结构
3.架构图
Spider(爬虫)负责给所有响应:引擎处理的数据,获取项目字段数据,并需要跟踪提交的URL,进入RabbitMQ
Engine(引擎):框架核心,负责Spider、RabbitMQ、Downloader、ItemPipeline的通讯、信号、数据传递等
RabbitMQ(消息):负责接受引擎发送的请求请求,并按照指定优先级存入消息
下载器(下载器):负责下载RabbitMQ中的所有请求请求,并将其获取到的响应交还给引擎,由引擎交给Spider来处理
ItemPipeline(管道):负责处理Spider中获取到的Item,并进行后期处理(详细分析、过滤、存储等)的地方
下载器中间件(下载中间件)之间的请求器是Scrapy引擎和下载中间件的主要中间件,请求器之间是Scrapy引擎与下载器的及响应处理
蜘蛛中间件(Spider中间件)主要是蜘蛛中间件(Spider中间件):工作是蜘蛛中间件和爬虫中间件,工作是蜘蛛的处理的响应输入和请求输出
4.运行流程
Spider 将所有请求发送给引擎
把Url封装成一个请求(Request)传给RabbitMQ,RabbitMQ将所有的请求按照优先级保存下来
下载器下来,并封装成资源包下载(响应)则Spider,如果请求成功获取到RabbitMQ中
爬虫解析响应
解析出实体(物品),然后负责进行进一步的处理
解析出来就是链接(Url),则把Url提供引擎,封装成一个请求传给RabbitMQ等待下载
5.监控截图
6.待办事项
-
生产结束后自动消费
-
Spiders 里可以指定ItemPipeline
-
请求失败重新返回到消息
-
支持中间件
-
与陡峭的连接
-
可以在Spider里指定RabbitMQ
-
日志日志需要整理
-
脚本采集信息以及日志存入MongoDB
-
使用平台化来开发爬虫
-
对当前项目下的所有爬虫进行控制
项目详情
scrapy_rabbit -0.2.9.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 1525f8f5189bbe719a6fe43dcc0885f51c2c2a72208c8d7cdb7b44a88c042553 |
|
| MD5 | 82f70b60de56988778c9edcc2657321f |
|
| 布莱克2-256 | a71e5d5df11c9ae14a1e30998bd57b011aaaf581894e7496cb560ccf04ef852f |