scrapy scrapyd 部署原来这么玩!以前看的都是假教程(一):概述(不看毁一生)

时间:2017-12-23 10:23:36作者:scrapy中文网阅读:

scrapyd是神马?能干嘛?许多小伙伴看了许多文章,依旧不知道!why?壁阔思,很多介绍scrapy scrapyd的文章,一来二话不说先在同一台PC上安装好Scrapyd-client和scrapyd,然后啪啪的说怎样使用命令,怎样部署……然后就没有然后了,然后就是大伙依旧不知道scrapy scrapyd到底能干嘛,到底用在神马地方杀伤力才最大!如果你依旧迷惑,不妨往下看看,或许还能让你更加迷惑呢?
scrapy scrapyd
要更好的使用scrapyd,首先需要来了解哈神马叫做:部署。个人认为,部署的话一般是在多台机子上安装同一个软件。比如一套ERP,你肯定是需要在收银、客服、财务、库存……等部门的机子上安装好ERP的客户端才叫部署,说白了就是涉及大规模安装的软件才叫部署。你说你在个人上装个office,这也叫部署?其实也可以这么说,但感觉就像:吃个饭叫用膳、拉泡屎叫更衣一样,让人觉得有点装X的感觉!同理,你在一台机子上装个scrapy然后再跑个爬虫,这你也好意思叫部署?然后再装个scrapyd来部署一番……个人感觉:单机玩爬虫,完全木必要使用scrapyd。scrapyd是为scrapy分布式爬取、或是scrapy大规模爬取做准备的。举个栗子,还是再来张鬼画符,你一看就知道了:
scrapyd原理
比如这是一个比价网站爬虫,神马是比价网站呢?就是把A网站的A商品,和B网站的A商品,和C网站的A商品同时放在一个网站,让你看看到底哪个网站划算,这就需要用爬虫去A、B、C网站爬数据了!那这肯定需要很多、很多的爬虫、很多很多的机器去爬了,为神马呢?因为数据量太多,淘宝动辄上亿条数据,前几天我爬了500多万条的小说都有10多G,上亿条数据,那你想想得要有多大?那一台机子短时间内根本无法爬完,那就需要多台机子同时去爬,上面的图其实也就一个简化版,因为爬淘宝的话一台机子肯定不够,绝对是多台的,这里为了讲解方便就一台吧,知道那个意思就行了,请诸君不要钻我的牛角尖,请放过我!
scrapyd
上图的上图就是这个分布式爬虫的拓扑图!服务器的话一般用的都是Linux,为神马呢,因为它性能强悍,能把跟多的内存、CPU资源分配给爬虫使用,因此爬虫也就更快!一台机器,我们可以狠方便的管理上面的爬虫,那10台、100台……更多呢?这里的管理就涉及到:上传爬虫、启动爬虫、暂停爬虫、修改爬虫……特别是上传,我们一般是在windows上开发好我们的爬虫,那开发好之后怎么上传到Linux呢?当然我们可以用一些文件传输方式,比如ftp,但是用ftp的话我们只能上传到linux服务器,那要修改呢、启动呢……那还得一台一台登录Linux启动、修改……登录10台以内或许你还会觉得人生美好,那50台以上我保证你可以怀疑人生!
scrapyd
基于这样的需求,scrapyd就不得不出现了,这就是传说中的时势造英雄!有了scrapyd我们就可以这样管理我们的爬虫了:首先,在每台Linux机子上安装好scrapyd,并开启scrapyd服务;然后我们在windows客户端,也就是开发爬虫的这台电脑,安装上scrapyd的客户端scrapyd-client,通过scrapyd-client把不同网站的爬虫发送到不同的服务器,然后我们只需在windows上就行修改、启动、停止爬虫操作,更自动化的是scrapyd给我提供了很python接口,我们可以通过python编程控制蜘蛛的运行,比如:我想晚上1:00启动淘宝爬虫、明天中午暂停京东爬虫、唯品会数据库满了停止爬虫……这一些都可以通过scrapyd提供的API用python编程的方式实现!总结一下:也就是说scrapyd和scrapyd-client是分别装在不同的机子上、多机爬取使用scrapyd才合理!很多教程在一台机子上既装scrapyd又装scrapyd-client,然后跟你说scrapyd怎么牛13,我感觉这都是吹牛13,一台机子装scrapyd简直是浪内存,怪不得许多小伙伴云里雾里的。
scrapyd
scrapyd除了能上传爬虫,还能修改爬虫,至于启动、停止、暂停那都是基本功能。这一讲主要是说了scrapyd存在的意义,知道了原理,后面的一切也就很简单了!那下一讲我们就在不同的机器上(Linux和windows)安装scrapyd和scrapyd-client,让你感受一下scrapyd的具体用法!

相关文章