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的汉字转GBK码实现代码
Feb 19 Python
Python单链表的简单实现方法
Sep 23 Python
Python检测一个对象是否为字符串类的方法
May 21 Python
Python中operator模块的操作符使用示例总结
Jun 28 Python
Python 处理图片像素点的实例
Jan 08 Python
Python pycharm 同时加载多个项目的方法
Jan 17 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
python绘图模块matplotlib示例详解
Jul 26 Python
python 字典套字典或列表的示例
Dec 16 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
python打开文件的方式有哪些
Jun 29 Python
Python环境搭建过程从安装到Hello World
Feb 05 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中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
php防止网站被刷新的方法汇总
2014/12/01 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
javascript动态加载二
2012/08/22 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
[55:25]VGJ.T vs Optic Supermajor小组赛D组 BO3 第三场 6.3
2018/06/04 DOTA
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
python用户管理系统的实例讲解
2017/12/23 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
python实现批量注册网站用户的示例
2019/02/22 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
全方位了解CSS3的Regions扩展
2015/08/07 HTML / CSS
比利时家具购买网站:Home24
2019/01/03 全球购物
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
小学清明节活动方案
2014/03/08 职场文书
2014年检验员工作总结
2014/11/19 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android
Golang日志包的使用
2022/04/20 Golang
关于mysql中string和number的转换问题
2022/06/14 MySQL