42

关于爬虫,这里有一份《中国焦虑图鉴》

 5 years ago
source link: http://www.10tiao.com/html/575/201807/2655818011/1.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

就在我们身边的网络上,已经密密麻麻爬满了各种网络爬虫,它们善恶不同,各怀心思。而越是每个人切身利益所在的地方,就越是爬满了爬虫。


来源浅黑科技(ID:qianheikeji),经授权转载

来不及了,快上车。上车前,中哥先问你三个问题:

  • 你以为你在大众点评上找到的馆子,真的是几百个人给了好评,然后才出现在你的推荐里的吗?

  • 你以为你在百度上搜索到的信息,真的是百度想让你看到的吗?(注意体会这句话的意思,不是日常黑百度)

  • 你以为在微博上看到的热搜话题大V互动,真的都是真实发生的吗?


好,确认过眼神,我们准备发车了。


最近北京下暴雨,人们寸步难行。我和幺哥坐在窗边喝茶,他看着窗外的阴霾,联想起了辛酸往事。


每年总有那么几天,幺哥会心情焦虑,坐立不安,腰膝乏力,湿身盗汗。那是因为,他又要准备抢回家的火车票了。


幺哥家在湖南,离北京上千公里。他是家里的独子,每年买到火车票准时出现在家门口是他的“义务”。


这两年,他的救命稻草是一个叫做“智行火车票”的抢票软件。他在打折的时候买了会员。


据说会员是有特权的:哪怕只抢到一张票,都会优先给他。(起码幺哥是这样安慰自己的。)


从技术上说,幺哥的救命稻草不是抢票软件,而是抢票软件背后,无数个叫做“爬虫”的东西。


说到这,中哥就得给你介绍今天的新朋友:爬虫。

等等,图片错了,应该是这样的爬虫:

爬虫就是一个探测机器,它的基本操作就是模拟人的行为去各个网站溜达,点点按钮,查查数据,或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。


你可以简单地想象:每个爬虫都是你的“分身”。就像孙悟空拔了一撮汗毛,吹出一堆猴子一样。


你每天使用的百度,其实就是利用了这种爬虫技术:每天放出无数爬虫到各个网站,把他们的信息抓回来,然后化好淡妆排着小队等你来检索。


抢票软件,就相当于撒出去无数个分身,每一个分身都帮助你不断刷新 12306 网站的火车余票。一旦发现有票,就马上拍下来,然后对你喊:土豪快来付款。


正好在上周末,一位黑客盆友御风神秘兮兮地给我发来一份《中国爬虫图鉴》,这哥们在腾讯云鼎实验室主要负责加班,顺便和同事们开发了很多黑科技。


比如他们搞了一个威胁情报系统,号称能探测到全世界的“爬虫”都在做什么。


我吹着口哨打开《图鉴》,但一分钟以后,我整个人都不好了。


我看到了另一个“平行世界”:就在我们身边的网络上,已经密密麻麻爬满了各种网络爬虫,它们善恶不同,各怀心思。


而越是每个人切身利益所在的地方,就越是爬满了爬虫。


看到最后,我发现这哪里是《中国爬虫图鉴》,这分明是一份《中国焦虑图鉴》。

我们今天要说的,就和这些 App 有关。


爬虫的“骚操作”


爬虫也分善恶。像谷歌这样的搜索引擎爬虫,每隔几天对全网的网页扫一遍,供大家查阅,各个被扫的网站大都很开心。这种就被定义为“善意爬虫”。


但是,像抢票软件这样的爬虫,对着 12306 每秒钟恨不得撸几万次。铁总并不觉得很开心。这种就被定义为“恶意爬虫”。(注意,抢票的你觉得开心没用,被扫描的网站觉得不开心,它就是恶意的。)


给你看一张图:

这张图里显示的,就是各行各业被爬虫“叨扰”的比例。(注意,这张图显示的是全世界,不是全中国。)而每一个色块背后,都是一条真实而强大的利益链条。


接下来,中哥就给你科普一下里面的骚操作。


排名第一的是出行


出行行业中爬虫的占比最高(20.87%)。在出行的爬虫中,有 89.02% 的流量都是冲着 12306 去的。这不意外,全中国卖火车票的独此一家别无分号。


你还记得当年 12306 上线王珞丹和白百何的“史上最坑图片验证码”么?

这些东西不是为了故意难为老老实实买票的人的,而恰恰是为了阻止爬虫(也就是抢票软件)的点击。


刚才说了,爬虫只会简单的机械点击,它不认识白百何,所以很大一部分爬虫就被挡在了门外。


你可能会说,不对啊,我现在还可以用抢票软件抢到票啊。没错。抢票软件也不是吃素的。


它们在和铁总搞“对抗”。有一种东西叫做“打码平台”,你可以了解一下。


打码平台雇佣了很多叔叔阿姨,他们在电脑屏幕前不做别的事情,专门帮人识别验证码。


那边抢票软件遇到了验证码,系统就会自动把这些验证码传到叔叔阿姨面前,他们手工选好哪个是白百何哪个是王珞丹,然后再把结果传回去。总共的过程用不了几秒时间。


当然,这样的打码平台还有记忆功能。如果叔叔阿姨已经标记了这张图是“锅铲”,那么下次这张图片再出现的时候,系统就直接判断它是“锅铲”。


时间一长,12306 系统里的图片就被标记完了,机器自己都能认识,叔叔阿姨们可以坐在一边斗地主了。

你可能会问:为什么 12306 这么抠呢?它大方地让爬虫随意爬会死吗?


答:会死。


你知道每年过年之前,12306 被点成什么样了吗?公开数据是这么说的:“最高峰时 1 天内页面浏览量达 813.4 亿次,1小时最高点击量 59.3 亿次,平均每秒 164.8 万次。”


这还是加上验证码防护之后的数据。可想而知被拦截在外面的爬虫还有多少。


况且这里还没有讨论,被抢票软件把票抢走,对我们父母那样的不会抢票的人来说,是不是公平呢?


铁路被爬虫“点鸡”成这样已经够惨了,但它还有个难兄难弟,就是航空。


而航空里,被搞得最惨的不是国航,不是海航,也不是东航。而是亚航。

航空类爬虫的分布比例


很多人可能都没坐过亚洲航空。这是一家马来西亚的廉价航空公司,航线基本都是从中国各地飞往东南亚的旅游胜地,飞机上连矿泉水都得自费买,是屌丝穷X度假之首选。


为什么爬虫这么青睐亚航呢?因为它便宜。确切地说,因为它经常放出便宜的票。


本来,亚航的初衷只是随机放出一些便宜的票来吸引游客,但这里面黄牛党是有利可图的。


据我所知,他们是这样玩的:技术宅黄牛党们利用爬虫,不断刷新亚航的票务接口,一旦出现便宜的票,不管三七二十一先拍下来再说。


亚航有规定,你拍下来半小时(具体时间记不清了)不付款票就自动回到票池,继续卖。


但是黄牛党们在爬虫脚本里写好了精确的时间,到了半小时,一毫秒都不多,他又把票拍下来,如此循环。


直到有人从黄牛党这里定了这个票,黄牛党就接着利用程序,在亚航系统里放弃这张票,然后 0.00001 秒之后,就帮你用你的名字预定了这张票。


“我是中间商,我就要赚差价!”这波骚操作,堪称完美。


排名第二的是社交


社交的爬虫重灾区,就是你们喜闻乐见的微博。


给你看张图:

这是爬虫经常光顾的微博地址。这里的代码其实指向了微博的一个接口。它可以用来获取某个人的微博列表、微博的状态、索引等等等等。


获得这些,能搞出什么骚操作呢?


你想想看,如果我能随心所欲地指挥一帮机器人,打开某人的微博,然后刷到某一条,然后疯狂关注、点赞或者留言,这不就是标准的僵尸粉上班儿的流程么。。。


其实,僵尸粉都只是爬虫的常规操作,更骚的来了:

  • 我是一个路人甲,我的微博没人关注,我用大量的爬虫,给自己做了十万人的僵尸粉,一群僵尸在我的微博下面点赞评论,不亦乐乎。

  • 我去找一个游戏厂商,跟他说:你看我有这么多粉丝,你在我这投广告吧。我帮你发一条游戏的注册链接,每有一个人通过我的链接注册了游戏,你就给我一毛钱。广告主说,不错,就这么办。

  • 我发出注册链接,然后没人点。。。

  • 不慌,我让十万爬虫继续前赴后继地点击注册链接,然后自动去完成注册动作。

  • 我躺在床上,数着赚来的一万块钱。


(以上数据不一定和现实吻合,只是展现一个逻辑。具体操作也会更复杂。)


还有更骚的么?有的。


你家爱豆不是经常在微博上发红包么?好的,我率十万僵尸粉去抢。

凭本事抢来的红包,就问你有什么不妥吗?


排名第三的是电商


你回忆一下,有几种东西叫做“比价平台”“聚合电商”和“返利平台”。


他们大体都是一个原理:你搜索一样商品,这类聚合平台就会自动把各个电商的商品都放在你面前供你选择。有淘宝、京东,还有唯品会苏宁易购。


这就是爬虫的功劳。它们去淘宝上,把胖次袜子杜蕾斯的图片和价格统统扒下来,然后在自己这里展示。

这个原理和谷歌差不多。只不过他们展示的不是网页而是商品。但是被放在一起比价,淘宝是拒绝的,京东也是拒绝的啊。。。


然鹅,由于机器爬虫模拟的是人的点击,电商很难阻止这类事情发生。他们甚至都不能向 12306 学习。


你想想看,如果你每点开一个商品详情,淘宝都让你先分辨一次白百何和王珞丹,你肯定没心情剁手,没准还要提刀去剁马云呢。。。


当然,电商对抗爬虫有另外的方法,那就是“Web 应用防火墙”,简称 WAF。这个我们后面再单独说。


说到这,有童鞋会有个疑问:那些聚合平台,自己写爬虫,然后帮助淘宝京东卖货,他们的名字叫雷锋么?


醒醒啊同学,雷锋叔叔已经走了很多年了。我随便给你说一下这种聚合电商平台的盈利模式:

  • 假设几家店铺都卖杜蕾斯,但是用户在我这里搜索“杜蕾斯”的时候,我是有权利决定谁的店铺在前面谁在后面的啊。谁给的钱多,我就让谁在搜索的前面呗。

    @百度君,你说说是不是这个道理?(注意,每个店铺和淘宝平台可不是一致行动人。淘宝平台不希望自己的内容被聚合平台抓取,但每个店铺可是很乐意多一个渠道帮他们卖货的。)

  • 如果你觉得搞竞价排名良心会痛,也可以用更简单的方式——在网页上展示独立的广告。

    访问你网站的用户,看到页面上的广告,也有可能会点击。每点击一次,你就赚一次钱。

  • 你还可以作为中间商,收点中介费。我帮你店家卖货了,你是不是要给我意思意思。

    除了给我意思意思,你还得给来买东西的用户意思意思。这种套路,就是“返利网”这类平台的玩法。


接下来是 O2O 和搜索引擎


你还记得上车之前,我问了你一个问题吗?你在大众点评上看到的信息,真是吃货们点评的吗?


答:大部分时候是,但有时候不是。这里面的影响因素还是爬虫。


御风告诉我,这些爬虫很可能被用来做两件事:

  • 大众点评毕竟是最好的点评网站。很多网站都会爬取大众点评的数据,用来丰富自己的信息。

  • 很多刚上点评的商户,信誉值不高,可以用爬虫来模拟留言、点赞,刷高自己的信誉值。


所以,理论上讲一旦大众点评对这些爬虫对抗出现松懈,就会有一些不三不四的店铺被“刷”到顶部。


而与之相似的,是爬虫针对搜索引擎的进攻。


你可能了解,搜索引擎决定哪个网页排名靠前,(除了广告以外)主要一个指标就是看哪个搜索结果被人点击的次数更多。


既然这样,那么我就派出爬虫,搜索某个特定的“关键词”,然后在结果里拼命地点击某个链接,那么这个网站在搜索引擎的权重里自然就会上升。这个过程就叫做 SEO(搜索引擎优化)。


举个例子:我随意搜索一个关键词。

它排在前面的网址,有可能就是经过 SEO 的。作为任何一个搜索引擎,都肯定不允许外人对于自己的搜索结果动手动脚,否则就会丧失公立性。它们会通过不定期调整算法来对抗 SEO。


尤其是很多赌博、黄色网站,搜索引擎如果敢收广告费让他们排到前面,那就离倒闭不远了。


所以黄赌毒网站只能利用黑色 SEO,强行把自己刷到前面。直到被搜索引擎发现,赶紧对它们“降权”处理。


不过御风算了算,这些黄色网站如果能把自己刷到前几位一两个小时,赚来的钱就远远超过 SEO 的费用。


这也就解释了为什么有时我们“众里寻他千百度”,蓦然回首,却看到“有人正在脱裤裤”了。


最后再说说政府部门


你看这张图,全是爬虫针对政府信息的爬取。

第二名,北京市预约挂号统一平台。这个锅,板上钉钉要号贩子来背。


其他的,例如法院公告、信用中国、信用安徽,为什么爬虫要爬这些信息呢?


因为有些信息,是只有政府部门才掌握的。比如,谁被告过,哪家公司曾经被行政处罚,哪个人曾经进入了失信名单。这些信息综合起来,可以用来做一个公司或者个人的信誉记录。


我试着打开了一下排名第四位的“信用中国”。

在这个平台上,你只要输入一个身份证号或者手机号,就可以查询到一个人的信用情况。拉到最底下一看,这个网站果然是是根红苗正的。

如果一家公司要对外做信誉库的服务,它必须先把信用中国的信息下载到自己的库里,然后才能和其他数据进行综合运算。


如此,信用中国被爬,也就很容易解释了。


不过刚才那张表格里,排名第七的是四川住建厅。这又是什么骚操作?


根据御风的推测,这很可能是某些公司提供的一项“特殊服务”:


他们把四川省各个地区的招标情况汇总起来,然后实时提醒那些房地产公司:别睡了,起来投标了。


爬虫战争


说了这么多,我猜你会有几个疑问。


问题 1:爬虫搞出这么多姿势,它究竟是不是违法呢?


这个问题还真的不简单。


我打开中国网安第一大法《网络安全法》仔细看了半小时,在里面没有发现“爬取网络公开信息被认定为违法”的条款。


于是我又继续搜索,发现了几条司法解释:未经授权爬取用户手机通讯录超过 50 条记录;未经授权抓取用户淘宝交易记录超过 500 条;未经授权读取用户运营商网站通话记录超过 500 条;未经授权读取用户公积金社保记录的超过 50000 条的。以上这些情况可以入刑。


但是仔细看看,如果我只是用机器代替了人的手点击鼠标敲击键盘,接触的都是公开信息,并不触犯这些司法解释。(这只是我简单查询后的结果,不代表任何官方意见)


但是,对企业来说,爬虫却着实伤害了自己。有句话说:“主救自救者。”他们得组织“民兵”自己保卫自己。


问题 2:爬虫战争谁会赢?


爬虫和被爬企业越来越势不两立。


说白了,他们的对抗都是在阻挡对方的财路。所以下手都挺重。


企业经典的对抗方式,大概有几种:图片验证码、滑块验证、封禁 IP、给访问者增加一些加解密运算,耗费爬虫的程序资源等等。。。

极验验证的滑块验证技术


除了刚才这些小模块,企业还可以通过 WAF(Web 应用防火墙)来防护,WAF 的功能就是通过设置一些规则,拦截掉那些不符合规则的请求。


但是,爬虫的请求,和真人的请求真的太像了。


我觉得,对这种战争一个形象的比喻就是抗癌。癌细胞的目的就是拼命躲过免疫细胞的识别,而免疫细胞的目标就是拼命分辨哪个是好细胞哪个是癌细胞。


在我看来,这场对抗爬虫的常规战眼看就要升级为“智能战”,而且战线会向云端转移。


比如某产品,听说最近就要通过人工智能的方法来识别爬虫。这里就不帮他们打广告了。还有很多其他的云安全厂商,也开始主推反爬虫的技术。


不过,就像人类目前难以消灭癌症一样,企业也难以完全消灭爬虫。但是我相信,在对抗中这条战线会达到一个精妙的平衡。这个战线每向前推进一步,都需要安全研究员付出艰辛的努力。


《中国焦虑图鉴》


最后,中哥帮你搞到了一张秘密表格。


这是被监测到的受爬虫侵扰最多的 Top50(采样数据,仅供参考):

这张表里,除了 Google、Youtube、ASK、亚洲航空这四家企业之外,应该全是中国企业(或机关)。正是从这些名字背后,我体会到了很多人的辛酸和焦虑。


爬虫是趋利的,它们永远会向有利益的地方爬行。而爬虫觉得有利益的地方,往往是我们不忍提及的隐痛。


你看,排名第 1 的“中国铁路客户服务中心”


无数像幺哥一样的游子,他们奋斗在一个远离家乡的城市,为了让家人有更幸福的生活。正是他们难以买到过年回家车票的事实,才把 12306 推上了爬虫榜的第一名。


你看,排名第8的“最高人民法院公告查询”


在中国,我们的信用体系还很不完善,骗子和老赖还可以继续蒙骗新人。所以才催生了爬虫收集法院公告,形成民间信用记录的服务。


你看,排名第 15 的“北京市预约挂号统一平台”


我们的医疗改革在进行,但像你我一样的普通人仍然看病难,看病贵。又便宜又好的医疗资源需要争夺,这才有了“一号难求”的现实,才有了黄牛用爬虫拼命抢号的现象。


自不用说那些神坑的虚假广告,冲榜刷量,背后都有爬虫的影子。

有人说技术有罪,有人说技术无罪。


我不知道技术是否有罪,我只知道,这些盘踞在我们广袤版图上数以十亿计的爬虫,无时无刻不在提醒着我们:抱怨不会让这个世界变得更好,你想生活在一个怎样的世界,就要用自己的双手去创造它。


作者:史中

编辑:陶家龙、孙淑娟

出处:浅黑科技(ID:qianheikeji)微信公众号,经授权转载。原文标题:我收到一份《中国焦虑图鉴》

精彩文章推荐:

我花了14个小时,终于找到了长春长生们究竟卖到了哪里去

爬了《邪不压正》上万条网评,告诉你到底值不值得看?

用Python来看3天破10亿的《我不是药神》到底神在哪?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK