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使用py2exe打包程序介绍
Nov 20 Python
在Python中使用Mako模版库的简单教程
Apr 08 Python
老生常谈Python之装饰器、迭代器和生成器
Jul 26 Python
利用python编写一个图片主色转换的脚本
Dec 07 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
Feb 13 Python
python递归实现快速排序
Aug 18 Python
pycharm: 恢复(reset) 误删文件的方法
Oct 22 Python
对Python random模块打乱数组顺序的实例讲解
Nov 08 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
Pycharm添加虚拟解释器报错问题解决方案
Oct 13 Python
Python torch.flatten()函数案例详解
Aug 30 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连接access数据库方法
2013/11/11 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
PHP计算近1年的所有月份
2017/03/13 PHP
PHP实现阿里大鱼短信验证的实例代码
2017/07/10 PHP
浅谈PHP进程管理
2019/03/08 PHP
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
JavaScript实现身份证验证代码实例
2019/08/26 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
详解Python中DOM方法的动态性
2015/04/11 Python
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
Python测试人员需要掌握的知识
2018/02/08 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
Python实现代码块儿折叠
2020/04/15 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
python 通过文件夹导入包的操作
2020/06/01 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
UGG英国官方网站:UGG UK
2018/02/08 全球购物
中学生校园广播稿
2014/01/16 职场文书
大学总结自我鉴定
2014/01/18 职场文书
保护环境建议书300字
2014/05/13 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
2015年全民创业工作总结
2015/07/23 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
实操Python爬取觅知网素材图片示例
2021/11/27 Python
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android