陕西优就业小编整理到Python相关新知识,运用Redis可以构建分布式爬虫。当能够针对一个url进行请求,获取数据,继续请求的时候,说明你的爬虫已经可以自给自足的爬起来。但是这样的爬虫其效率将会严重限制在单进程效率极限之下,时间的主要消耗还是在请求返回的等待时间,如果想进一步提高效率那么多进程以及分布式就会你提高效率的最好手段。而且分布式并不意味着你一定要很多台电脑,只要你在本机测试通过一样可以方便迁移。具体小编来讲解下吧!
1、redis简介
redis是一个key-value存储系统,速度很快因为将数据存放在内存,在必要时可以转到硬盘。支持数据类型有string,lists,sets,zsets。这些数据类型都支持push/pop,add/remove以及取交集并集差集等操作,对这些操作都是原子性的,redis还支持各种不同的排序能力。
redis本身属于一个数据库类型的系统,不过在分布式中反而是他的队列性特别好用,就被开发成分布式的基石。所以今天我们测试的内容就是在多台机器上安装redis,然后让一台作为服务器别的机器开启客户端共享队列。
2、多机测试
使用你的服务器(有远程服务器最好,没有的话也可以在自己本机安装),按照上面安装好环境后,先去除保护的开启服务器端(未来长久使用要改配置),然后先再开一个终端链接到服务器,在服务器本机的环境也开一个客户端,(只是因为机器不多),回车之后会看到进入一个交互命令行界面。
首先增加一个key对应的value,其次查看这个值,然后返回你的个人电脑,也通过客户端链接过去然后查看这个值,如果出现同样的lala。那么说明分布式的环境已经搭建好了。
3、scrapy_redis
4、简单应用测试
一般而言分布式至少需要两个程序:一个用于捕捉待爬队列,并且加入到队列。如果待爬队列可以通过一定的规律算出来则可以轻松直接push到队列中;另一个则是读取待爬队列进行新一轮的爬取工作
5、多机协作的redis
要开启多机合作的redis分布式,也并不困难,最好将redis服务器放置在某服务器上,有固定ip。同时设定好安全密码或者固定的ip白名单,redis直接开放很容易被黑了。