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脚本
Feb 10 Python
Python实现控制台进度条功能
Jan 04 Python
Python实现扩展内置类型的方法分析
Oct 16 Python
Python实现的桶排序算法示例
Nov 29 Python
Python程序运行原理图文解析
Feb 10 Python
Python递归实现汉诺塔算法示例
Mar 19 Python
Python 将pdf转成图片的方法
Apr 23 Python
Django 登陆验证码和中间件的实现
Aug 17 Python
Python的高阶函数用法实例分析
Apr 11 Python
详解django使用include无法跳转的解决方法
Mar 19 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
Python基础学习之奇异的GUI对话框
May 27 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相当简单的分页类
2008/10/02 PHP
PHP 采集获取指定网址的内容
2010/01/05 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
Firefox div高度自适应
2009/04/28 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
javascript中length属性的探索
2011/07/31 Javascript
js 弹出菜单/窗口效果
2011/10/30 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
原生js实现秒表计时器功能
2017/02/16 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
django 邮件发送模块smtp使用详解
2019/07/22 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
2019/07/18 HTML / CSS
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
什么是ARP(Address Resolution Protocol)地址解析协议
2013/10/31 面试题
国际经济贸易专业推荐信
2013/11/06 职场文书
优秀大学生推荐信范文
2013/11/28 职场文书
工作中个人的自我评价
2013/12/31 职场文书
实习生自我评价
2014/01/18 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
政法学院毕业生求职信
2014/02/28 职场文书
学习党章的体会
2014/11/07 职场文书
春季运动会开幕词
2015/01/28 职场文书
介绍信如何写
2015/01/31 职场文书
2016年母亲节广告语
2016/01/28 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android