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实例分析
May 20 Python
Python连接数据库学习之DB-API详解
Feb 07 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
Python实现比较扑克牌大小程序代码示例
Dec 06 Python
纯python实现机器学习之kNN算法示例
Mar 01 Python
python同步windows和linux文件
Aug 29 Python
详解python 中in 的 用法
Dec 12 Python
在python中计算ssim的方法(与Matlab结果一致)
Dec 19 Python
kafka监控获取指定topic的消息总量示例
Dec 23 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
Jan 10 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 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判断图片格式的七种方法小结
2013/06/03 PHP
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
PHP查看SSL证书信息的方法
2016/09/22 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
优化innerHTML操作(提高代码执行效率)
2011/08/20 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
js判断游览器类型及版本号的代码
2014/05/11 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
JS实现的对象去重功能示例
2019/06/04 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python生成随机mac地址的方法
2015/03/16 Python
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
python中字符串的操作方法大全
2018/06/03 Python
基于python log取对数详解
2018/06/08 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
高一英语教学反思
2014/01/22 职场文书
护士毕业生自荐信
2014/02/07 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
天猫某品牌专卖店运营计划书
2014/03/21 职场文书
绿色学校实施方案
2014/03/31 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
陈胜吴广起义口号
2014/06/20 职场文书