Scrapy基于scrapy_redis实现分布式爬虫部署的示例
准备工作
1.安装scrapy_redis包,打开cmd工具,执行命令pip install scrapy_redis

2.准备好一个没有BUG,没有报错的爬虫项目

3.准备好redis主服务器还有跟程序相关的mysql数据库
前提mysql数据库要打开允许远程连接,因为mysql安装后root用户默认只允许本地连接,详情请看此文章


部署过程
1.修改爬虫项目的settings文件
在下载的scrapy_redis包中,有一个scheduler.py文件,里面有一个Scheduler类,是用来调度url,还有一个dupefilter.py文件,里面有个类是RFPDupeFilter,是用来去重,所以要在settings任意位置文件中添加上它们

还有在scrapy_redis包中,有一个pipelines文件,里面的RedisPipeline类可以把爬虫的数据写入redis,更稳定安全,所以要在settings中启动pipelines的地方启动此pipeline

最后修改redis连接配置

2.修改spider爬虫文件
首先我们要引入一个scrapy_redis.spider文件中的一个RedisSpider类,然后把spider爬虫文件原来继承的scrapy.Spider类改为引入的RedisSpider这个类

接着把原来的start_urls这句代码注释掉,加入redis_key = '自定义key值',一般以爬虫名:urls命名

测试部署是否成功
直接运行我们的项目,

打开redis客户端在redis添加key为yunqi:start_urls的列表,值为地址

添加成功后,程序直接跑了起来

查看数据是否插入


分布式用到的代码应该是同一套代码
1) 先把项目配置为分布式
2) 把项目拷贝到多台服务器中
3) 把所有爬虫项目都跑起来
4) 在主redis-cli中lpush你的网址即可
5) 效果:所有爬虫都开始运行,并且数据还都不一样
到此这篇关于Scrapy基于scrapy_redis实现分布式爬虫部署的示例的文章就介绍到这了,更多相关Scrapy redis分布式爬虫 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Flask和Django框架中自定义模型类的表名、父类相关问题分析
这篇文章主要介绍了Flask和Django框架中自定义模型类的表名、父类相关问题,结合实例形式对比分析了Flask框架与Django框架表名定义方式的不同之处,并简单描述了框架的父类继承问题,需要的朋友可以参考下2018-07-07
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
这篇文章主要介绍了python环境搭建和pycharm的安装配置及汉化(零基础小白版),需要的朋友可以参考下2020-08-08
python实现合并多个list及合并多个django QuerySet的方法示例
这篇文章主要介绍了python实现合并多个list及合并多个django QuerySet的方法,结合实例形式分析了Python使用chain合并多个list以及合并Django中多个QuerySet的相关操作技巧,需要的朋友可以参考下2019-06-06
Python读取Windows和Linux的CPU、GPU、硬盘等部件温度的读取方法
本文详细介绍了如何使用Python在Windows和Linux系统上通过OpenHardwareMonitor和psutil库读取CPU、GPU等部件的温度,包括Windows下的两种方法以及Linux下的简单实现,感兴趣的小伙伴跟着小编一起来看看吧2025-02-02


最新评论