Scrapy基于scrapy_redis实现分布式爬虫部署的示例


Posted in Python onSeptember 29, 2020

准备工作

1.安装scrapy_redis包,打开cmd工具,执行命令pip install scrapy_redis

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

2.准备好一个没有BUG,没有报错的爬虫项目

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

3.准备好redis主服务器还有跟程序相关的mysql数据库

前提mysql数据库要打开允许远程连接,因为mysql安装后root用户默认只允许本地连接,详情请看此文章

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

部署过程

1.修改爬虫项目的settings文件

在下载的scrapy_redis包中,有一个scheduler.py文件,里面有一个Scheduler类,是用来调度url,还有一个dupefilter.py文件,里面有个类是RFPDupeFilter,是用来去重,所以要在settings任意位置文件中添加上它们

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

还有在scrapy_redis包中,有一个pipelines文件,里面的RedisPipeline类可以把爬虫的数据写入redis,更稳定安全,所以要在settings中启动pipelines的地方启动此pipeline

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

最后修改redis连接配置

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

2.修改spider爬虫文件

首先我们要引入一个scrapy_redis.spider文件中的一个RedisSpider类,然后把spider爬虫文件原来继承的scrapy.Spider类改为引入的RedisSpider这个类

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

接着把原来的start_urls这句代码注释掉,加入redis_key = '自定义key值',一般以爬虫名:urls命名

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

测试部署是否成功

直接运行我们的项目,

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

打开redis客户端在redis添加key为yunqi:start_urls的列表,值为地址

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

添加成功后,程序直接跑了起来

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

查看数据是否插入

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

分布式用到的代码应该是同一套代码
1) 先把项目配置为分布式
2) 把项目拷贝到多台服务器中
3) 把所有爬虫项目都跑起来
4) 在主redis-cli中lpush你的网址即可
5) 效果:所有爬虫都开始运行,并且数据还都不一样

到此这篇关于Scrapy基于scrapy_redis实现分布式爬虫部署的示例的文章就介绍到这了,更多相关Scrapy redis分布式爬虫 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 爬虫学习笔记之单线程爬虫
Sep 21 Python
关于Python数据结构中字典的心得
Dec 04 Python
Python自定义线程池实现方法分析
Feb 07 Python
对python numpy数组中冒号的使用方法详解
Apr 17 Python
如何利用python查找电脑文件
Apr 27 Python
对Python使用mfcc的两种方式详解
Jan 09 Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 Python
Scrapy-Redis结合POST请求获取数据的方法示例
May 07 Python
python 爬取学信网登录页面的例子
Aug 13 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
Apr 24 Python
Keras:Unet网络实现多类语义分割方式
Jun 11 Python
Python pandas求方差和标准差的方法实例
Aug 04 Python
浅析python 字典嵌套
Sep 29 #Python
详解基于Scrapy的IP代理池搭建
Sep 29 #Python
Python 创建守护进程的示例
Sep 29 #Python
Python 解析xml文件的示例
Sep 29 #Python
Python 字典一个键对应多个值的方法
Sep 29 #Python
python 获取字典特定值对应的键的实现
Sep 29 #Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
Sep 29 #Python
You might like
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
three.js搭建室内场景教程
2018/12/30 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
Python实现的HTTP并发测试完整示例
2020/04/23 Python
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
Python语言生成水仙花数代码示例
2017/12/18 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
2018/07/18 Python
Django objects的查询结果转化为json的三种方式的方法
2018/11/07 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
财务经理的岗位职责
2013/12/17 职场文书
餐饮收银员岗位职责
2014/02/07 职场文书
个性发展自我评价
2014/02/11 职场文书
公开服务承诺制度
2014/03/26 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
升职自荐书
2019/05/09 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
十大最强岩石系宝可梦,怪颚龙实力最强,第七破坏力很强
2022/03/18 日漫
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android