基于Scrapy_redis部署scrapy分布式爬虫

scrapy分布式爬虫是为了更快速的爬取更多的数据,将爬虫项目分部到多个主机上同时爬取数据。以下是基于scrapy_redis部署scrapy分布式。

1.首先打开命令行工具,在你的环境下下载scrapy_redis包,如果有虚拟环境,先进入虚拟环境再下载,在命令行中输入:pip install scrapy_redis。

基于Scrapy_redis部署scrapy分布式爬虫

2.下载过scrapy_redis包后,用pycharm打开我们的爬虫项目,找到settings文件,在里面配置scrapy项目使用的调度器和过滤器

。以下是配置图示:

基于Scrapy_redis部署scrapy分布式爬虫

基于Scrapy_redis部署scrapy分布式爬虫

3.在settings配置过之后,打开我们的spider爬虫文件,修改以下部分:

(1)引入scrapy_redis中的爬虫类,修改爬虫类继承的父类为RedisSpider

(2)将start_urls注释掉,写入redis_key = '爬虫项目名:star_urls'

基于Scrapy_redis部署scrapy分布式爬虫

4.如果连接的有远程服务,例如MySQL,Redis等,需要将远程服务器连接开启,保证在其他主机上能够成功连接。

在连接时需设置好权限:

基于Scrapy_redis部署scrapy分布式爬虫

基于Scrapy_redis部署scrapy分布式爬虫

5.在爬虫项目中settings配置远程连接的MySQL和redis地址,注意自己的IP地址。

基于Scrapy_redis部署scrapy分布式爬虫

6.在主机上打卡命令行工具开启redis,再打开一个新的命令行工具进入redis后输入redis-cli lpush,key是spider爬虫中的增加的key,value是start_urls的地址

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

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

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

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

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

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