点击上方蓝字关注我们~
本文大概
6432
字
建议阅读时长
10
分钟
来不及了,快上车。
上车前,先问你三个问题:
1. 你以为你在「大众点评」上找到的馆子真的是几百个人给了好评,然后才出现在你的推荐里的吗?
2. 你以为你在「百度」上搜索到的信息真的是百度想让你看到的吗?(注意体会这句话的意思,不是日常黑百度)
3. 你以为在微博上看到的热搜话题大 V 互动,真的都是真实发生的吗?
好,确认过眼神,我们准备发车了。
作者 | 史中
经授权转自 | 浅黑科技
01
写 在 前 面
最近北京下暴雨,人们寸步难行。
我和幺哥坐在 床 窗边喝茶,他看着窗外的阴霾,联想起了辛酸往事。
每年总有那么几天,幺哥会心情焦虑,坐立不安,腰膝乏力,湿身盗汗。那是因为,他又要准备抢回家的火车票了。
幺哥家在湖南,离北京上千公里。他是家里的独子,每年买到火车票准时出现在家门口是他的义务。
这两年,他的救命稻草是一个叫做XX火车票的抢票软件。他在打折的时候买了会员。据说会员是有特权的:哪怕只抢到一张票,都会优先给他。(起码幺哥是这样安慰自己的。)
从技术上说,幺哥的救命稻草不是抢票软件,而是抢票软件背后,无数个叫做「爬虫」的东西。
说到这,我们就得给你介绍今天的新朋友:爬虫。
等等,图片错了,应该是这样的爬虫:
「爬虫」就是一个探测机器,它的基本操作就是模拟人的行为去各个网站溜达,点点按钮,查查数据,或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。
你可以简单地想象:每个「爬虫」都是你的分身。就像孙悟空拔了一撮汗毛,吹出一堆猴子一样。
你每天使用的百度,其实就是利用了这种爬虫技术:每天放出无数爬虫到各个网站,把他们的信息抓回来,然后化好淡妆排着小队等你来检索。
抢票软件,就相当于撒出去无数个分身,每一个分身都帮助你不断刷新 12306 网站的火车余票。一旦发现有票,就马上拍下来,然后对你喊:土豪块来付款。
正好在上周末,一位黑客盆友御风神秘兮兮地给我发来一份《中国爬虫图鉴》,这哥们在腾讯云鼎实验室主要负责加班,顺便和同事们开发了很多黑科技。
比如他们搞了一个威胁情报系统,号称能探测到全世界的爬虫都在做什么。
我吹着口哨打开《图鉴》,但一分钟以后,我整个人都不好了。
我看到了另一个平行世界:
就在我们身边的网络上,已经密密麻麻爬满了各种网络爬虫,它们善恶不同,各怀心思。而越是每个人切身利益所在的地方,就越是爬满了爬虫。
看到最后,我发现这哪里是《中国爬虫图鉴》,这分明是一份《中国焦虑图鉴》。
我们今天要说的,就和这些 App 有关。
02
爬虫的那些骚操作
「爬虫」也分善恶。
像谷歌这样的搜索引擎爬虫,每隔几天对全网的网页扫一遍,供大家查阅,各个被扫的网站大都很开心。这种就被定义为善意爬虫。
但是,像抢票软件这样的爬虫,对着 12306 每秒钟恨不得撸几万次。铁总并不觉得很开心。这种就被定义为恶意爬虫。(注意,抢票的你觉得开心没用,被扫描的网站觉得不开心,它就是恶意的。)
给你看一张图:
这张图里显示的,就是各行各业被爬叨扰的比例。(注意,这张图显示是全世界,不是全中国。)而每一个色块背后,都是一条真实而强大的利益链条。
接下来,就给你科普一下里面的骚操作。
出 行
出行行业中爬虫的占比最高(20.87%)。
而在出行的爬虫中,有89.02%的流量都是冲着12306去的。这不意外,全中国卖火车票的独此一家别无分号。
你还记得当年 12306 上线「王珞丹」和「白百何」的史上最坑图片验证码么?
这些东西不是为了故意难为老老实实卖票的人的,而恰恰是为了阻止爬虫(也就是抢票软件)的点击。
刚才说了,「爬虫」只会简单的机械点击,它不认识「白百何」,所以很大一部分爬虫就被挡在了门外。
你可能会说,不对啊,我现在还可以用抢票软件抢到票啊。
没错。抢票软件也不是吃素的。它们在和铁总搞对抗。
有一种东西叫做打码平台,你可以了解一下。打码平台雇佣了很多叔叔阿姨,他们在电脑屏幕前不做别的事情,专门帮人识别验证码。
那边抢票软件遇到了验证码,系统就会自动把这些验证码传到叔叔阿姨面前,他们手工选好哪个是「白百何」哪个是「王珞丹」,然后再把结果传回去。总共的过程用不了几秒时间。
当然,这样的打码平台还有记忆功能。
如果叔叔阿姨已经标记了这张图是锅铲,那么下次这张图片再出现的时候,系统就直接判断它是锅铲。
时间一长,12306 系统里的图片就被标记完了,机器自己都能认识,叔叔阿姨都可以坐在一边斗地主了。
你可能会问:为什么 12306 这么抠呢?它大方地让爬虫随意爬会死吗?
答:会死。
你知道每年过年之前,12306 被点成什么样了吗?
公开数据是这么说的:最高峰时 1 天内页面浏览量达813.4亿次,1 小时最高点击量59.3亿次,平均每秒164.8万次。
这还是加上验证码防护之后的数据。可想而知被拦截在外面的爬虫还有多少。
况且这里还没有讨论,被抢票软件把票抢走,对我们父母那样的不会抢票的人来说,是不是公平呢?
铁路被爬虫点鸡成这样已经够惨了,但它还有个难兄难弟,就是航空。
而航空里,被搞得最惨的不是国航,不是海航,也不是东航。而是亚航。
很多人可能都没坐过「亚洲航空」。这是一家马来西亚的廉价航空公司,航线基本都是从中国各地飞往东南亚的旅游胜地,飞机上连矿泉水都得自费买,是屌丝穷 X 度假之首选。
为什么爬虫这么青睐亚航呢?因为它便宜。确切地说,因为它经常放出便宜的票。
本来,亚航的初衷只是随机放出一些便宜的票来吸引游客,但这里面黄牛党是有利可图的。
据我所知,他们是这样玩的:
技术宅黄牛党们利用爬虫,不断刷新亚航的票务接口,一旦出现便宜的票,不管三七二十一先拍下来再说。
亚航有规定,你拍下来半小时(具体时间记不清了)不付款票就自动回到票池,继续卖。但是黄牛党们在爬虫脚本里写好了精确的时间,到了半小时,一毫秒都不多,他又把票拍下来,如此循环。
直到有人从黄牛党这里定了这个票,黄牛党就接着利用程序,在亚航系统里放弃这张票,然后 0.00001 秒之后,就帮你用你的名字预定了这张票。
我是中间商,我就要赚差价!这波骚操作,堪称完美。
社 交
社交的爬虫重灾区,就是你们喜闻乐见的微博。
给你们看张图:
这是「爬虫」经常光顾的微博地址。
这里的代码其实指向了微博的一个接口。它可以用来获取某个人的微博列表、微博的状态、索引等等等等。
获得这些,能搞出什么骚操作呢?
你想想看,如果我能随心所欲地指挥一帮机器人,打开某人的微博,然后刷到某一条,然后疯狂关注、点赞或者留言,这不就是标准的僵尸粉上班儿的流程么。。。
其实,僵尸粉都只是爬虫的常规操作,更骚的来了:
1. 我是一个路人甲,我的微博没人关注,我用大量的爬虫,给自己做了十万人的僵尸粉,一群僵尸在我的微博下面点赞评论,不亦乐乎。
2. 我去找一个游戏厂商,跟他说:你看我有这么多粉丝,你在我这投广告吧。我帮你发一条游戏的注册链接,每有一个人通过我的链接注册了游戏,你就给我一毛钱。广告主说,不错,就这么办。
3. 我发出注册链接,然后没人点。。。
4. 不慌,我让十万爬虫继续前赴后继地点击注册链接,然后自动去完成注册动作。
5. 我躺在床上,数着赚来的一万块钱。
(以上数据不一定和现实吻合,只是展现一个逻辑。具体操作也会更复杂。)
还有更骚的么?有的。
你家爱豆不是经常在微博上发红包么?好的,我率十万僵尸粉去抢。
凭本事抢来的红包,就问你有什么不妥吗?
电 商
你回忆一下,有几种东西叫做比价平台、聚合电商和返利平台。他们大体都是一个原理:
你搜索一样商品,这类聚合平台就会自动把各个电商的商品都放在你面前供你选择。有淘宝、京东,还有唯品会苏宁易购等。
这就是「爬虫」的功劳。它们去「淘宝」上,把胖次袜子杜蕾斯的图片和价格统统扒下来,然后在自己这里展示。
这个原理和 Google 差不多。只不过他们展示的不是网页而是商品。但是被放在一起比价,「淘宝」是拒绝的,「京东」也是拒绝的啊......
然鹅,由于机器爬虫模拟的是人的点击,电商很难阻止这类事情发生。他们甚至都不能向 12306 学习。
你想想看,如果你每点开一个商品详情,「淘宝」都让你先分辨一次「白百何」和「王珞丹」,你肯定没心情剁手,没准还要提刀去剁「马云」呢......
当然,电商对抗「爬虫」有另外的方法,那就是web 应用防火墙,简称 WAF。这个我们后面再单独说。
说到这,有童鞋会有个疑问:
那些聚合平台,自己写爬虫,然后帮助淘宝京东卖货,他们的名字叫雷锋么?
醒醒啊同学,雷锋叔叔已经走了很多年了。我随便给你说一下这种聚合电商平台的盈利模式:
1. 假设几家店铺都卖杜蕾斯,但是用户在我这里搜索杜蕾斯的时候,我是有权利决定谁的店铺在前面谁在后面的啊。谁给的钱多,我就让谁在搜索的前面呗。@百度君,你说说是不是这个道理?
(注意,每个店铺和淘宝平台可不是一致行动人。淘宝平台不希望自己的内容被聚合平台抓取,但每个店铺可是很乐意多一个渠道帮他们卖货的。)
2. 如果你觉得搞竞价排名良心会痛,也可以用更简单的方式——在网页上展示独立的广告。访问你网站的用户,看到页面上的广告,也有可能会点击。每点击一次,你就赚一次钱。
3. 你还可以作为中间商,收点中介费。我帮你店家卖货了,你是不是要给我意思意思。除了给我意思意思,你还得给来买东西的用户意思意思。
这种套路,就是返利网这类平台的玩法。
O2O & 搜索引擎
你还记得上车之前,我问了你一个问题吗?
你在「大众点评」上看到的信息,真是吃货们点评的吗?
答:大部分时候是,但有时候不是。
这里面的影响因素还是「爬虫」。
御风告诉我,这些「爬虫」很可能被用来做两件事:
1. 大众点评毕竟是最好的点评网站。很多网站都会爬取大众点评的数据,用来丰富自己的信息。
2. 很多刚上点评的商户,信誉值不高,可以用爬虫来模拟留言、点赞,刷高自己的信誉值。
所以,理论上讲一旦大众点评对这些「爬虫」对抗出现松懈,就会有一些不三不四的店铺被刷到顶部。
而与之相似的,是「爬虫」针对搜索引擎的进攻。
你可能了解,搜索引擎决定哪个网页排名靠前,(除了广告以外)主要一个指标就是看哪个搜索结果被人点击的次数更多。
既然这样,那么我就派出「爬虫」,搜索某个特定的关键词,然后在结果里拼命地点击某个链接,那么这个网站在搜索引擎的权重里自然就会上升。这个过程就叫做 SEO(搜索引擎优化)。
举个例子,我随意搜索一个关键词。
它排在前面的网址,有可能就是经过 SEO 的。作为任何一个搜索引擎,都肯定不允许外人对于自己的搜索结果动手动脚,否则就会丧失公立性。它们会通过不定期调整算法来对抗 SEO。
不过御风算了算,这些黄色网站如果能把自己刷到前几位一两个小时,赚来的钱就远远超过 SEO 的费用。
政府部门
再看这张图,全是「爬虫」针对政府信息的爬取。
第二名,「北京市预约挂号统一平台」。这个锅,板上钉钉要号贩子来背。
其他的,例如法院公告、信用中国、信用安徽,为什么「爬虫」要爬这些信息呢?
因为有些信息,是只有政府部门才掌握的。
比如,谁被告过,哪家公司曾经被行政处罚,哪个人曾经进入了失信名单。这些信息综合起来,可以用来做一个公司或者个人的信誉记录。
我试着打开了一下排名第四位的「信用中国」。
在这个平台上,你只要输入一个身份证号或者手机号,就可以查询到一个人的信用情况。拉到最底下一看,这个网站果然是是根红苗正的。
如果一家公司要对外做信誉库的服务,它必须先把「信用中国」的信息下载到自己的库里,然后才能和其他数据进行综合运算。
如此,「信用中国」被爬,也就很容易解释了。
不过刚才那张表格里,排名第七的是「四川住建厅」。这又是什么骚操作?
根据御风的推测,这很可能是某些公司提供的一项特殊服务:
他们把四川省各个地区的招标情况汇总起来,然后实时提醒那些房地产公司:别睡了,起来投标了。
03
爬 虫 战 争
说了这么多,我猜你会有几个疑问。
这个问题还真的不简单。
于是我又继续搜索,发现了几条司法解释:
未经授权爬取用户手机通讯录超过 50 条记录;
未经授权抓取用户淘宝交易记录超过 500 条;
未经授权读取用户运营商网站通话记录超过 500 条;
未经授权读取用户公积金社保记录的超过 50000 条的。
以上这些情况可以入刑。
但是仔细看看,如果我只是用机器代替了人的手点击鼠标敲击键盘,接触的都是公开信息,并不触犯这些司法解释。(这只是我简单查询后的结果,不代表任何官方意见)
但是,对企业来说,「爬虫」却着实伤害了自己。有句话说:主救自救者。他们得组织民兵自己保卫自己。
问题 2:爬虫战争谁会赢?
爬虫和被爬企业越来越势不两立。
说白了,他们的对抗都是在阻挡对方的财路。所以下手都挺重。
企业经典的对抗方式,大概有几种:图片验证码、滑块验证、封禁 IP、给访问者增加一些加解密运算,耗费爬虫的程序资源等等......
除了刚才这些小模块,企业还可以通过 WAF(Web 应用防火墙)来防护,WAF 的功能就是通过设置一些规则,拦截掉那些不符合规则的请求。
但是,「爬虫」的请求,和真人的请求真的太像了。
我觉得,对这种战争一个形象的比喻就是抗癌。癌细胞的目的就是拼命躲过免疫细胞的识别,而免疫细胞的目标就是拼命分辨哪个是好细胞哪个是癌细胞。
在我看来,这场对抗爬虫的常规战眼看就要升级为智能战,而且战线会向云端转移。
比如腾讯云的 WAF,听说最近就要通过人工智能的方法来识别爬虫。这里就不帮他们打广告了。还有很多其他的云安全厂商,也开始主推反爬虫的技术。
不过,就像人类目前难以消灭癌症一样,企业也难以完全消灭爬虫。
但是我相信,在对抗中这条战线会达到一个精妙的平衡。这个战线每向前推进一步,都需要安全研究员付出艰辛的努力。
04
中国焦虑图鉴
最后,给你们搞到了一张秘密表格。
这是被监测到的受爬虫侵扰最多的 Top50 企业。(采样数据,仅供参考)
这张表里,除了 google、Youtube、ask、亚洲航空这四家企业之外,应该全是中国企业(或机关)。正是从这些名字背后,我体会到了很多人的辛酸和焦虑。
「爬虫」是趋利的,它们永远会向有利益的地方爬行。而「爬虫」觉得有利益的地方,往往是我们不忍提及的隐痛。
你看,排名第 1 的中国铁路路客户服务中心
无数像幺哥一样的游子,他们奋斗在一个远离家乡的城市,为了让家人有更幸福的生活。正是他们难以买到过年回家车票的事实,才把 12306 推上了爬虫榜的第一名。
你看,排名第 15 的北京市预约挂号统一平台
我们的医疗改革在进行,但像你我一样的普通人仍然看病难,看病贵。又便宜又好的医疗资源需要争夺,这才有了一号难求的现实,才有了黄牛用爬虫拼命抢号的现象。
自不用说那些神坑的虚假广告,冲榜刷量,背后都有「爬虫」的影子。
抱怨不会让这个世界变得更好,你想生活在一个怎样的世界,就要用自己的双手去创造它。
05
写 在 最 后
对于广大程序员来说,如何避免「爬虫」所带来的法律风险?
爬虫所带来的风险主要有:
1. 违反网站意愿,例如网站采取反爬措施后,强行突破其反爬措施;
2. 爬虫干扰了被访问网站的正常运营;
3. 爬虫抓取了受到法律保护的特定类型的数据或信息。
其中,第 3 类风险主要来自于通过规避反爬虫措施抓取到了互联网上未被公开的信息。
因此,爬虫开发者在使用爬虫时应注意:
1. 严格遵守网站设置的 robots 协议;
2. 在规避反爬虫措施的同时,需要优化自己的代码,避免干扰被访问网站的正常运行;
3. 在设置抓取策略时,应注意编码抓取视频、音乐等可能构成作品的数据,或者针对某些特定网站批量抓取其中的用户生成内容;
4. 在使用、传播抓取到的信息时,应审查所抓取的内容,如发现属于用户的个人信息、隐私或者他人的商业秘密的,应及时停止并删除。
-END-
声明 | 平台内容供学习、交流使用,版权归原作者所有,若出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。转载ImageQ大数据公众号文章请注明来源及作者。感谢!
征 稿 啦~
如果你有优质的好文推荐,欢迎给我们来稿。
来稿内容可以是业内热点事件、技术趋势的真知灼见,也可以是行业应用、场景方案等的深度见解。
投稿请联系:微信camille9113,并备注投稿+姓名+简介哈~
byImageQ大数据
你可能感兴趣的...
(点击文/图即可查看相关内容)
最新!最全!清华 65 页 PDF 解码《2018 自然语言处理研究报告》
CESI 重磅编制!《中国人工智能开源软件发展白皮书(2018)》正式发布
17 张思维导图读懂 Python 核心知识体系 | 附资源下载
回复关键词序号,获取更多10W+干货
01 技术干货|02 热点事件
03 大 咖 说|04 往期精彩
05 产品试用|06 官网直达
↓↓↓点击下方阅读原文免费申请平台产品试用☺
...