-
使用命令行工具下载工具包 scrapy_redis,在命令行敲下面代码并回车, 出现Success类字符表示下载成功
-
使用pycharm 打开项目,找到settings文件,配置scrapy项目使用的
调度器及过滤器! 这里数据存储到redis中可以不用存储,(看自己意愿)
-
修改spider爬虫文件, 这里的redis_key在后面执行爬虫命令时需要用到,要记住!from scrapy_redis.spiders import RedisSpider
类需要继承自RedisSpider(记的继承!!!)
把start_urls给注释掉,设置一个redis_key
-
如果连接的有远程服务,例如MySQL,Redis等,需要将远程服务连接开启,
保证其他主机能够成功连接上,下图是设置MySQL的方法,(作为主机时,从属机能连接到主机的MySQL)
!!!切记 这里设置完之后一定要刷新权限,否则还是会连接失败。
-
配置远程连接的 MySQL 及 redis 地址
(这里的MySQL数据库以及redis地址均为你的本机地址(redis默认端口为6379), 记得数据库密码正确!!!)如果不知道自己电脑的ip地址, 打开cmd命令行工具, 输入: ipconfig 即可查询
注:分布式用到的代码应该是统一套代码!(大概为以下4步) -
- 先把项目配置为分布式,2. 把项目拷贝到多台服务器中, 3. 把所有爬虫项目都跑起来, 4. redis中lpush你的网址即可,。 效果: 所有爬虫都开始运行,并且数据都不一样。
以上配置的爬虫项目,下面是在cmd命令行准备执行爬虫。设置redis!
- 先把项目配置为分布式,2. 把项目拷贝到多台服务器中, 3. 把所有爬虫项目都跑起来, 4. redis中lpush你的网址即可,。 效果: 所有爬虫都开始运行,并且数据都不一样。
redis的配置
redis属于非关系型数据库
1。修改配置文件(找到redis下的redis.windows.conf 双击打开,找到bind 并修改为0.0.0.0(这里注意有一个为举例的bind 看清楚不要修改错误))
当你的电脑作为主机时需要时刻开着redis服务,下面是打开redis服务的配置
(1) 打开cmd命令行 进入redis的安装目录,输入redis-server.exe redis.windows.conf 回车。
如果出现bind:no error 如下图2(在redis目录下输入redis-cli 回车 输入shutdown 回车 输入 exit退出)然后再重新输入输入redis-server.exe redis.windows.conf运行服务器
(2)主机开启redis服务之后,不要断开,切记!!! 进入redis安装目录,输入:redis-cli.exe -h 主机(或者别人的)ip地址(-p 端口号6379(可以不用写))用来测试是否可以远程连接redis(如果回车之后没有出现如图效果,检查自己的bind是否修改以及redis服务是否被自己关闭)出现如下表示可以远程连接redis ,
(3) 查看连接从属机的个数, 主机输入 info 确认是否连接成功,(这里可以省略不写,直接ctrl+c)
然后: ctrl+c
(4) 如果redis想访问远程的redis服务器,需要接触保护模式。(上一步如果连接别人的IP地址不出现上图效果,先执行这一步,在执行上一步!!!)如下:
1)在远程服务器登陆redis-cli , 2)输入命令:config set protected-mode “no” 回车
(5)接下来就是准备运行爬虫项目, 现在爬虫项目中运行爬虫会开始等待。。。从属机也开始运行爬虫并等待。。。。
这个时候在cmd命令行中输入: redis-cli 回车, 输入lpush 会出现 : lpush key value [value …]
这里的key 为reidis_key, value为起始地址, 如果想要发多个地址, 每个起始地址间空格隔开, 然后回车,出现下图效果爬虫就开始自动运行了。。
从属机在执行主机分布的爬虫项目时需要连接到主机的数据库:打开MySQL数据库- 点击连接选择MySQL
注: 当你把代码发给从属机, 从属机运行代码时会等待直到你输完
第(5)步命令,从属机开始自动运行!!!
但是如果这个时候你发现从属机或者主机在没有你输入代码就直接开始运行了:
打开你的redis软件,点击你的本地连接右键,Reload更新一下,并且检查你的db0下面是否有请求request,
如果有的话直接删除,再重新运行爬虫就ok了!!