脚本专栏 
首页 > 脚本专栏 > 浏览文章

Scrapy基于scrapy_redis实现分布式爬虫部署的示例

(编辑:jimmy 日期: 2024/5/9 浏览:3 次 )

准备工作

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) 效果:所有爬虫都开始运行,并且数据还都不一样

上一篇:Python爬取微信小程序通用方法代码实例详解
下一篇:详解如何修改python中字典的键和值
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网