Scrapy_redis分布式部署爬虫

对于接触完过scrapy框架的同学,下一步就是部署分布式爬虫,让爬取的速率大大提高。既然要用Scrapy_redis部署爬虫,那就要安装scrapy_redis第三方库。下面就是开始教程。

一.使用安装命令 pip install scrapy_redis

二.既然是分布式部署,scrapy项目里的相关文件就要进行配置,例子如下:

1…使用pycharm打开项目,找到settings文件,配置scrapy项目使用的调度器及过滤器

分布式爬虫需要hadoop吗 分布式爬虫部署_分布式爬虫需要hadoop吗


分布式爬虫需要hadoop吗 分布式爬虫部署_redis_02


2.修改爬虫文件

分布式爬虫需要hadoop吗 分布式爬虫部署_python_03


3.配置mysql,配置远程连接的MySQL及redis地址

分布式爬虫需要hadoop吗 分布式爬虫部署_redis_04


这里注意,当配置完连接redis地址后,所有配置完成后,运行爬虫后,出现计算机积极拒绝的情况时,修改代码如下:

分布式爬虫需要hadoop吗 分布式爬虫部署_分布式爬虫需要hadoop吗_05


配置里连接的ip地址都是主电脑上的ip地址

4.修改mysql权限

分布式爬虫需要hadoop吗 分布式爬虫部署_redis_06


‘%’ 表示任意IP都可以进行链接,然后刷新权限

分布式爬虫需要hadoop吗 分布式爬虫部署_redis_07


5.选择其中一台机器,开启redis-server服务

并修改redis.windows.conf配置文件,修改内容如下:

配置远程IP地址,供其他的电脑进行连接redis

bind: (当前电脑IP) 192.168.40.29

关闭redis保护模式

protected-mode: no

保存退出,配置文件默认的安装位置是在C:\Program Files\Redis里

6.到redis安装目录下打开cmd命令行工具开启redis服务

分布式爬虫需要hadoop吗 分布式爬虫部署_redis_08


打开成功就是这个界面

如果开启服务失败,也有解决方式:

分布式爬虫需要hadoop吗 分布式爬虫部署_python_09


7.主电脑开启redis服务后,再打开一个cmd命令窗口,输入一下命令连接redis

分布式爬虫需要hadoop吗 分布式爬虫部署_python_10


这样就是连接到redis了,现在算算要开启几个cmd命令窗口呢,分别是什么,现在总结下:

1.mysql服务要开,因为做的是分布式,别的电脑要连接到主电脑的mysql

2.redis服务

3.连接redis8.所有配置结束后,把修改后的scrapy拷贝到另外一台或者电脑中去,分别在主电脑和从电脑里运行爬虫,此时会处于等待状态,因为上面讲了,我们已将将start_urls注释掉了,截图如下:

分布式爬虫需要hadoop吗 分布式爬虫部署_分布式_11


此时爬虫处于等待状态

9.

分布式爬虫需要hadoop吗 分布式爬虫部署_分布式爬虫需要hadoop吗_12


在刚才打的窗口里输入起始地址,让爬虫进行解析爬取 命令为:lpush 爬虫名:start_urls 起始地址

10.起始地址输入完毕后,两台电脑会根据redis的调度器进行同时爬取数据并存入数据库,由于有去重机制,所以数据不会重复

11.提示:万一没有运行成功,或者没有写去数据库,还要对数据库进行进一步设置

分布式爬虫需要hadoop吗 分布式爬虫部署_scrapy_redis_13


12.走到这步百分之90都可以运行成功了,还有没成功的就要检查各个配置文件,连接的ip是不是主电脑的ip,或者服务都开启没有等等