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函数学习笔记
Oct 07 Python
Python单链表简单实现代码
Apr 27 Python
python与sqlite3实现解密chrome cookie实例代码
Jan 20 Python
Python获取指定文件夹下的文件名的方法
Feb 06 Python
python编辑用户登入界面的实现代码
Jul 16 Python
python实现维吉尼亚算法
Mar 20 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 Python
python 实现超级玛丽游戏
Nov 25 Python
Python用access判断文件是否被占用的实例方法
Dec 17 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易混淆知识整理笔记
2015/09/24 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
thinkPHP框架实现生成条形码的方法示例
2018/06/06 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
JavaScript 10件让人费解的事情
2010/02/15 Javascript
限制文本框输入N个字符的js代码
2010/05/13 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
最细致的vue.js基础语法 值得收藏!
2016/11/03 Javascript
vue组件间通信解析
2017/03/01 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
vue的diff算法知识点总结
2018/03/29 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
Python实现将xml导入至excel
2015/11/20 Python
Python常用爬虫代码总结方便查询
2019/02/25 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
通过cmd进入python的步骤
2020/06/16 Python
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
十佳教师事迹材料
2014/01/11 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书