本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

报码:那些你不知道的爬虫反爬虫套路

时间:2017-06-12 20:08来源:118论坛 作者:本港台直播 点击:
编者按:本文来自微信公众号“携程技术中心”,作者 崔广宇,携程酒店研发部开发经理,与去哪儿艺龙的反爬虫同事是好基友。携程技术中心“非著名”段子手;36氪经授权发布。

编者按:本文来自微信公众号“携程技术中心”,作者 崔广宇,携程酒店研发部开发经理,与去哪儿艺龙的反爬虫同事是好基友。携程技术中心“非著名”段子手;36氪经授权发布。

前言

爬虫与反爬虫,是一个很不阳光的行业。

这里说的不阳光,有两个含义。

第一是,这个行业是隐藏在地下的,一般很少被曝光出来。很多公司对外都不会宣称自己有爬虫团队,甚至隐瞒自己有反爬虫团队的事实。这可能是出于公司战略角度来看的,与技术无关。

第二是,这个行业并不是一个很积极向上的行业。很多人在这个行业摸爬滚打了多年,积攒了大量的经验,但是悲哀的发现,这些经验很难兑换成闪光的简历。面试的时候,因为双方爬虫理念或者反爬虫理念不同,也很可能互不认可,影响自己的求职之路。本来程序员就有“文人相轻”的倾向,何况理念真的大不同。

然而这就是程序员的宿命。不管这个行业有多么的不阳光,依然无法阻挡大量的人进入这个行业,因为有公司的需求。

那么,公司到底有什么样的需求,导致了我们真的需要爬虫/反爬虫呢?

反爬虫很好理解,有了爬虫我们自然要反爬虫。对于程序员来说,哪怕仅仅是出于“我就是要证明我技术比你好”的目的,也会去做。对于公司来说,意义更加重大,最少,也能降低服务器负载,光凭这一点,反爬虫就有充足的生存价值。

那么爬虫呢?

最早的爬虫起源于搜索引擎。搜索引擎是善意的爬虫,可以检索你的一切信息,并提供给其他用户访问。为此他们还专门定义了robots.txt文件,作为君子协定,这是一个双赢的局面。

然而事情很快被一些人破坏了。爬虫很快就变的不再“君子”了。

后来有了“大数据”。无数的媒体鼓吹大数据是未来的趋势,吸引了一批又一批的炮灰去创办大数据公司。这些人手头根本没有大数据,他们的数据只要用一个U盘就可以装的下,怎么好意思叫大数据呢?这么点数据根本忽悠不了投资者。于是他们开始写爬虫,拼命地爬取各个公司的数据。很快他们的数据,就无法用一个U盘装下了。这个时候终于可以休息休息,然后出去吹嘘融资啦。

然而可悲的是,大容量U盘不断地在发布。他们总是在拼命地追赶存储增加的速度。L

以上是爬虫与反爬虫的历史。

电子商务行业的爬虫与反爬虫更有趣一些,最初的爬虫需求来源于比价。

这是某些电商网站的核心业务。大家如果买商品的时候,是一个价格敏感型用户的话,atv,很可能用过网上的比价功能(真心很好用啊)。毫无悬念,他们会使用爬虫技术来爬取所有相关电商的价格。他们的爬虫还是比较温柔的,对大家的服务器不会造成太大的压力。

然而,这并不意味着大家喜欢被他爬取。毕竟这对其他电商是不利的。于是需要通过技术手段来做反爬虫。

按照技术人员的想法,对方用技术怼过来,我们就要用技术怼回去,不能怂啊。这个想法是很好的,但是实际应用起来根本不是这么回事。

诚然,技术是很重要的,但是实际操作上,更重要的是套路。谁的套路更深,谁就能玩弄对方于鼓掌之中。谁的套路不行,有再好的技术,也只能被耍的团团转。这个虽然有点伤技术人员的自尊,然而,我们也不是第一天被伤自尊了。大家应该早就习惯了吧。

一、真实世界的爬虫比例

大家应该听过一句话吧,大概意思是说,整个互联网上大概有50%以上的流量其实是爬虫。第一次听这句话的时候,我还不是很相信,我觉得这个说法实在是太夸张了。怎么可能爬虫比人还多呢? 爬虫毕竟只是个辅助而已。

现在做了这么久的反爬虫,我依然觉得这句话太夸张了。50%?你在逗我?就这么少的量?

举个例子,某公司,某个页面的接口,每分钟访问量是1.2万左右。这里面有多少是正常用户呢?

50%?60%?还是?

正确答案是:500以下。

也就是说,一个单独的页面,12000的访问量里,有500是正常用户,其余是爬虫。

注意,统计爬虫的时候,考虑到你不可能识别出所有的爬虫,因此,这500个用户里面,其实还隐藏着一些爬虫。那么爬虫率大概是:

(12000-500)/12000=95.8%

这个数字你猜到了吗?

这么大的爬虫量,这么少的用户量,大家到底是在干什么?是什么原因导致了明明是百人级别的生意,却需要万级别的爬虫来做辅助? 95%以上,19保1?

答案可能会相当令人喷饭。这些爬虫大部分是由于决策失误导致的。

二、哭笑不得的决策思路

举个例子,这个世界存在3家公司,售卖相同的电商产品。三家公司的名字分别是A,B,C。

这个时候,客户去A公司查询了下某商品的价格,看了下发现价格不好。于是他不打算买了。他对整个行业的订单贡献为0。

然而A公司的后台会检测到,我们有个客户流失了,j2直播,原因是他来查询了一个商品,这个商品我们的价格不好。没关系,我去爬爬别人试试。

于是他分别爬取了B公司和C公司。

B公司的后台检测到有人来查询价格,但是呢,最终没有下单。他会认为,嗯,我们流失了一个客户。怎么办呢?

我可以爬爬看,别人什么价格。于是他爬取了A和C。

C公司的后台检测到有人来查询价格……

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容