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下进行UDP网络编程的教程
Apr 29 Python
python通过加号运算符操作列表的方法
Jul 28 Python
浅析Python基础-流程控制
Mar 18 Python
python实现K最近邻算法
Jan 29 Python
Python实现的微信好友数据分析功能示例
Jun 21 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
Java文件与类动手动脑实例详解
Nov 10 Python
Python更新所有已安装包的操作
Feb 13 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
Python如何给函数库增加日志功能
Aug 04 Python
方法汇总:Python 安装第三方库常用
Apr 26 Python
Python使用BeautifulSoup4修改网页内容
May 20 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/02/22 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
JavaScript eval()函数定义及使用方法详解
2020/07/07 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
Django model update的多种用法介绍
2020/03/28 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
css3绘制百度的小度熊
2018/10/29 HTML / CSS
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
经典优秀个人求职自荐信格式
2013/09/25 职场文书
护理实习自我鉴定
2013/12/14 职场文书
外贸业务员求职信
2014/06/16 职场文书
2014年客服工作总结范文
2014/11/13 职场文书
见义勇为事迹材料
2014/12/24 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python
PO模式在selenium自动化测试框架的优势
2022/03/20 Python