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简单猜数游戏实例
Jul 09 Python
用python记录运行pid,并在需要时kill掉它们的实例
Jan 16 Python
Python文件和流(实例讲解)
Sep 12 Python
python读取csv文件并把文件放入一个list中的实例讲解
Apr 27 Python
如何用python整理附件
May 13 Python
Django压缩静态文件的实现方法详析
Aug 26 Python
Python理解递归的方法总结
Jan 28 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
python模块导入的方法
Oct 24 Python
vscode写python时的代码错误提醒和自动格式化的方法
May 07 Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
Oct 31 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
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
JS中创建函数的三种方式及区别
2016/03/13 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
推荐下python/ironpython:从入门到精通
2007/10/02 Python
Python实现的批量下载RFC文档
2015/03/10 Python
Python selenium 三种等待方式解读
2016/09/15 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
python pandas时序处理相关功能详解
2019/07/03 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
Python的历史与优缺点整理
2020/05/26 Python
python让函数不返回结果的方法
2020/06/22 Python
Django后端分离 使用element-ui文件上传方式
2020/07/12 Python
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
精细化工应届生求职信
2013/11/17 职场文书
秘书岗位职责
2013/11/18 职场文书
工作所在部门证明
2014/09/21 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
迟到检讨书范文
2015/01/27 职场文书
拖欠货款起诉状
2015/05/20 职场文书
失恋33天观后感
2015/06/11 职场文书
军训后的感想
2015/08/07 职场文书
python获取字符串中的email
2022/03/31 Python