当前位置:   article > 正文

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

scrapy pipeline redis mysql

准备工作

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

2249f208ccf186cf4deb0ea8bb09f371.png

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

6d5f35eafdf39fe6ecc0364e4c8d80eb.png

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

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

8f40ede703a1fa7be18358a97e7ee7e9.png

e708fe134040d3f58ee320d122632f9b.png

部署过程

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

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

85bbe8c3123a11dcb7cee61cb6623996.png

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

20a37facd9044be2905c719e35948352.png

最后修改redis连接配置

a68847ebfadcd296e6a3d377d6b4a5f9.png

2.修改spider爬虫文件

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

e1d83ad94d20cdb5e7447d80b328bd52.png

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

f17af2e0ea3940e07e3d4b1440c978af.png

测试部署是否成功

直接运行我们的项目,

d21f56ddaa168eff6538ee657c49c78c.png

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

f02782fa3c64f3c1ed58a4fef322b37b.png

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

a418522f5160c3ec7f316f78b14a5974.png

查看数据是否插入

17620518edc431943fffd2b2ef9d2aa8.png

cfe175069f6e865503f7be5cef1abf4a.png

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

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

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

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

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

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

到此这篇关于Scrapy基于scrapy_redis实现分布式爬虫部署的示例的文章就介绍到这了,更多相关Scrapy redis分布式爬虫 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/208155
推荐阅读
相关标签
  

闽ICP备14008679号