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日志模块logging简介
Apr 13 Python
python中reduce()函数的使用方法示例
Sep 29 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
python 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 Python
python读取几个G的csv文件方法
Jan 07 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
Python dict和defaultdict使用实例解析
Mar 12 Python
Softmax函数原理及Python实现过程解析
May 22 Python
Python通过len函数返回对象长度
Oct 22 Python
python matlab库简单用法讲解
Dec 31 Python
python神经网络ResNet50模型
May 06 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
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
PHP创建XML接口示例
2019/07/04 PHP
JS setCapture 区域外事件捕捉
2010/03/18 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
jQuery继承extend用法详解
2016/10/10 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
微信小程序实现时间戳格式转换
2020/07/20 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
Python XML RPC服务器端和客户端实例
2014/11/22 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
django的auth认证,authenticate和装饰器功能详解
2019/07/25 Python
python中几种自动微分库解析
2019/08/29 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
Python实现井字棋小游戏
2020/03/09 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
Canvas 文本填充线性渐变的使用详解
2020/06/22 HTML / CSS
数字漫画:comiXology
2020/06/13 全球购物
骨干教师培训制度
2014/01/13 职场文书
优秀员工评语
2014/02/10 职场文书
项目经理任命书
2014/06/04 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
中学生检讨书范文
2014/11/03 职场文书
2015年入党积极分子评语
2015/03/26 职场文书
幼儿园新生开学寄语
2015/05/27 职场文书
企业愿景口号
2015/12/25 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python