scrapy 分布式 mysql_使用Scrapy基于scrapy_redis实现分布式爬虫部署

使用Scrapy基于scrapy_redis实现分布式爬虫部署

发布时间:2020-10-31 01:27:59

来源:亿速云

阅读:114

作者:Leah

使用Scrapy基于scrapy_redis实现分布式爬虫部署?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

准备工作

1.安装scrapy_redis包,打开cmd工具,执行命令pip install scrapy_redis

fa29d6cd1a377bae7da9f8240c1682b6.png

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

c626b23a3cc1be582d980462dce6df23.png

3.准备好redis主服务器还有跟程序相关的mysql数据库

前提mysql数据库要打开允许远程连接,因为mysql安装后root用户默认只允许本地连接,详情请看此文章

e0da0b157e9069dfd36d91e629782513.png

2bb3ef946de4792be44bccaa42944d4e.png

部署过程

1.修改爬虫项目的settings文件

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

6b8d222ee209c9c0cb34577ec4b8f8ef.png

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

b6aa24f61f381d8af3b8f014da3b7d97.png

最后修改redis连接配置

eb39653b2ffbd1fc6adf0348cd60eb73.png

2.修改spider爬虫文件

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

2f6bc976c76e4b5de95612cfea5e2888.png

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

296a6f24807cddb74560a3ca249469b2.png

测试部署是否成功

直接运行我们的项目,

1a3963be05bd6a7edb3d183b50ec3cb9.png

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

7f8b04453874a7a2e3747cd454dcd3e8.png

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

fa6703d5b2b59f99bd2953e2d738b57b.png

查看数据是否插入

5248896e674fc1c209e74016c5c8e4e4.png

4ca595779773a669b7861150c1a525a6.png

分布式用到的代码应该是同一套代码

1) 先把项目配置为分布式

2) 把项目拷贝到多台服务器中

3) 把所有爬虫项目都跑起来

4) 在主redis-cli中lpush你的网址即可

5) 效果:所有爬虫都开始运行,并且数据还都不一样

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值