基于Scrapy_redis部署scrapy分布式爬虫
1.使用命令行工具下载工具包 scrapy_redis(若是虚拟环境可下载在虚拟环境中)
2.准备一个写好的没有错误的爬虫项目(这里以51job为例)
3.使用pycharm打开项目,找到settings文件,配置scrapy项目使用的调度器及过滤器
4.修改spider爬虫文件
5.如果连接的有远程服务,例如MySQL,Redis等,需要将远程服务连接开启,保证在其他主机上能够成功连接
将root主机的host改成 % 即可在远程使用该账户访问MySQL,更改完成后保存
保存完成后刷新权限
6.配置远程连接的MySQL及redis地址
打开cmd命令行进入redis安装目录启用redis服务
如果主机防火墙开启,则需要将其关闭
由于电脑基本上都默认设置的有防火墙,如果redis想访问远程的redis服务器,需要解除保护模式
做法
1) 在远程服务器登录redis-cli
2) 输入命令
config set protected-mode "no" 回车
7.连接成功后可运行爬虫文件
8.打开redis查看结果
9.打开数据库查看结果
到此51job的分布式爬虫项目已部署完毕,简单总结一下redis部署主从关系
Redis属于非关系型数据库
修改配置文件(找到redis下的redis.windows.conf)
1. 修改主的配置文件 搜索bind,将后面的ip改成当前服务器ip
2. 修改从的配置文件 搜索slaveof,将该代码解注释,然后添加 ip和端口号。注意:端口号必须写
2) 重启主和从的redis服务
进入文件夹路径下:shift 右键 在此处打开命令窗口
在cmd终端输入 redis-server redis.windows.conf
如果输入报错:bind:no error
重开一个终端输入redis-cli 回车 输入shutdown 回车 输入 exit退出
然后再重新输入输入redis-server.exe redis.windows.conf运行服务器
通过redis-cli重新链接
主开启redis服务器, 通过redis-cli -h 主的ip -p端口号6379
4) 从开启redis服务器,通过redis-cli链接
主设置set name zhangsan ,从能获取到 get name 返回zhangsan 说明链接成功
查看从的个数,主输入info,确认是否连接成功
如果redis想访问远程的redis服务器,需要解除保护模式
做法
1) 在远程服务器登录redis-cli
2) 输入命令
config set protected-mode "no" 回车
附:
分布式用到的代码应该是同一套代码
1) 先把项目配置为分布式
2) 把项目拷贝到多台服务器中
3) 把所有爬虫项目都跑起来
4) 在主redis-cli中lpush你的网址即可
5) 效果:所有爬虫都开始运行,并且数据还都不一样