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

发布时间:2020-10-31 01:27:59 作者:Leah
来源:亿速云 阅读:470

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

准备工作

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

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

推荐阅读:
  1. Python自动化开发学习-分布式爬虫(scrapy-redis)
  2. scrapy的使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

scrapy scrapy_redis

上一篇:PHP开发网页留言板的案例

下一篇:PHP模拟QQ网页版授权登录的案例

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》