爬虫与反爬虫,是一个很不阳光的行业。
这里说的不阳光,有两个含义。
第一是,这个行业是隐藏在地下的,一般很少被曝光出来。很多公司对外都不会宣称自己有爬虫团队,甚至隐瞒自己有反爬虫团队的事实。这可能是出于公司战略角度来看的,与技术无关。
第二是,这个行业并不是一个很积极向上的行业。很多人在这个行业摸爬滚打了多年,积攒了大量的经验,但是悲哀的发现,这些经验很难兑换成闪光的简历。面试的时候,因为双方爬虫理念或者反爬虫理念不同,也很可能互不认可,影响自己的求职之路。本来程序员就有“文人相轻”的倾向,何况理念真的大不同。
然而这就是程序员的宿命。不管这个行业有多么的不阳光,依然无法阻挡大量的人进入这个行业,因为有公司的需求。
那么,公司到底有什么样的需求,导致了我们真的需要爬虫/反爬虫呢?
反爬虫很好理解,有了爬虫我们自然要反爬虫。对于程序员来说,哪怕仅仅是出于“我就是要证明我技术比你好”的目的,也会去做。对于公司来说,意义更加重大,最少,也能降低服务器负载,光凭这一点,反爬虫就有充足的生存价值。
那么爬虫呢?
最早的爬虫起源于搜索引擎。搜索引擎是善意的爬虫,可以检索你的一切信息,并提供给其他用户访问。为此他们还专门定义了robots.txt文件,作为君子协定,这是一个双赢的局面。
然而事情很快被一些人破坏了。爬虫很快就变的不再“君子”了。
后来有了“大数据”。无数的媒体鼓吹大数据是未来的趋势,吸引了一批又一批的炮灰去创办大数据公司。这些人手头根本没有大数据,他们的数据只要用一个U盘就可以装的下,怎么好意思叫大数据呢?这么点数据根本忽悠不了投资者。于是他们开始写爬虫,拼命地爬取各个公司的数据。很快他们的数据,就无法用一个U盘装下了。这个时候终于可以休息休息,然后出去吹嘘融资啦。
然而可悲的是,大容量U盘不断地在发布。他们总是在拼命地追赶存储增加的速度。L
以上是爬虫与反爬虫的历史。
一、爬虫反爬虫运行现状
电子商务行业的爬虫与反爬虫更有趣一些,最初的爬虫需求来源于比价。
这是某些电商网站的核心业务。大家如果买商品的时候,是一个价格敏感型用户的话,很可能用过网上的比价功能(真心很好用啊)。毫无悬念,他们会使用爬虫技术来爬取所有相关电商的价格。他们的爬虫还是比较温柔的,对大家的服务器不会造成太大的压力。
然而,这并不意味着大家喜欢被他爬取。毕竟这对其他电商是不利的。于是需要通过技术手段来做反爬虫。
按照技术人员的想法,对方用技术怼过来,我们就要用技术怼回去,不能怂啊。这个想法是很好的,但是实际应用起来根本不是这么回事。
诚然,技术是很重要的,但是实际操作上,更重要的是套路。谁的套路更深,谁就能玩弄对方于鼓掌之中。谁的套路不行,有再好的技术,也只能被耍的团团转。这个虽然有点伤技术人员的自尊,然而,我们也不是第一天被伤自尊了。大家应该早就习惯了吧。
1、真实世界的爬虫比例
大家应该听过一句话吧,大概意思是说,整个互联网上大概有50%以上的流量其实是爬虫
。第一次听这句话的时候,我还不是很相信,我觉得这个说法实在是太夸张了。怎么可能爬虫比人还多呢? 爬虫毕竟只是个辅助而已。
现在做了这么久的反爬虫,我依然觉得这句话太夸张了。50%?你在逗我?就这么少的量?
举个例子,某公司,某个页面的接口,每分钟访问量是1.2万左右。这里面有多少是正常用户呢?
50%?60%?还是?
正确答案是:500以下。
也就是说,一个单独的页面,12000的访问量里,有500是正常用户,其余是爬虫。
注意,统计爬虫的时候,考虑到你不可能识别出所有的爬虫,因此,这500个用户里面,其实还隐藏着一些爬虫。那么爬虫率大概是:
(12000-500)/12000=95.8%
这个数字你猜到了吗?
这么大的爬虫量,这么少的用户量,大家到底是在干什么?是什么原因导致了明明是百人级别的生意,却需要万级别的爬虫来做辅助? 95%以上,19保1?
答案可能会相当令人喷饭。这些爬虫大部分是由于决策失误导致的。