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获取网页上图片下载地址的方法
Mar 11 Python
利用Python中的输入和输出功能进行读取和写入的教程
Apr 14 Python
python查询sqlite数据表的方法
May 08 Python
CentOS7安装Python3的教程详解
Apr 10 Python
如何使用Python自动控制windows桌面
Jul 11 Python
Python适配器模式代码实现解析
Aug 02 Python
python 计算两个列表的相关系数的实现
Aug 29 Python
Python 获取numpy.array索引值的实例
Dec 06 Python
Python self用法详解
Nov 28 Python
python 遍历磁盘目录的三种方法
Apr 02 Python
Django项目如何正确配置日志(logging)
Apr 29 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
May 28 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
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
jquery获取多个checkbox的值异步提交给php的方法
2015/06/24 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
python从入门到精通(DAY 3)
2015/12/20 Python
python字符串连接方法分析
2016/04/12 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
python实现归并排序算法
2018/11/22 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
详解python中list的使用
2019/03/15 Python
python web框架 django wsgi原理解析
2019/08/20 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
Python接口自动化测试框架运行原理及流程
2020/11/30 Python
python字典按照value排序方法
2020/12/28 Python
学点简单的Django之第一个Django程序的实现
2021/02/24 Python
怎样自定义一个异常类
2016/09/27 面试题
本科生详细的自我评价
2013/09/19 职场文书
品牌宣传方案
2014/03/21 职场文书
校园文化标语
2014/06/18 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技