反爬虫战争进行了十八年,但一切才刚刚开始

在一大堆技术术语里,最为被普通人所熟知的大概就是“爬虫”了。其实爬虫这个名字就已经特别好地表现出了这项技术的作用——像密密麻麻的虫子一样分布在网络上,爬行至每一个角落获取数据;也一定程度上表达了人们对这项技术的情感倾向——虫子或许无害,但总是不受欢迎的。

有关爬虫的功能、益处或危害,此前已经有过很多讨论。因为爬虫技术造成的大量IP访问网站侵占带宽资源、以及用户隐私和知识产权等危害,很多互联网企业都会花大力气进行“反爬虫”。

相比爬虫技术本身,反爬虫其实更加复杂,发展历程也更加有趣。

我们如何反爬虫?先礼后兵、再对簿公堂

几乎是和爬虫技术诞生的同一时刻,反爬虫技术也诞生了。在90年代开始有搜索引擎网站利用爬虫技术抓取网站时,一些搜索引擎从业者和网站站长通过邮件讨论定下了一项“君子协议”—— robots.txt。即网站有权规定网站中哪些内容可以被爬虫抓取,哪些内容不可以被爬虫抓取。这样既可以保护隐私和敏感信息,又可以被搜索引擎收录、增加流量。

爬虫技术刚刚诞生时我们还处于上古时代,互联网是一片贤者云集的乐土,大多数从业者都会默守这一协定,毕竟那时候信息和数据都没什么油水可捞。但很快互联网上开始充斥着商品信息、机票价格、个人隐私……在利益的诱惑下,自然有些人会开始违法爬虫协议了。

当君子协议失效,我们开始改用技术手段阻拦爬虫的入侵。比如从访问数量上发现爬虫,当我们在某一网站浏览过快时,系统往往会要求输入验证码,就是因为这种快速浏览的行为很接近爬虫。或者是不定期改变HTML标签,使之无法与Web排序匹配来限制爬虫。

但是即便如此,我们也没有任何方法可以禁止爬虫在网站中出入,只能加大爬虫的访问难度。如果网站可以供给人类访问,就一定也可以被爬虫访问。而且如果从底层完全组织爬虫抓取,也很可能让网站无法被搜索引擎收录。

所以,在所有的先礼后兵都对爬虫失效时。最后反爬虫的手段只有最后一项——对簿公堂。

两场官司和十七年,爬虫没变,我们变了

历史上第一桩关于爬虫的官司诞生在2000年,eBay将一家聚合价格信息的比价网站BE告上了法庭,eBay声称自己已经将哪些信息不能抓取写进了爬虫协议中,但BE违反了这一协议。但BE认为eBay上的内容属于用户集体贡献而不归用户所有,爬虫协议不能用作法律参考。

最后经过业内反复讨论和法庭上的几轮唇枪舌战,最终以eBay胜诉告终,也开了用爬虫协议作为主要参考的先河。

但这也引起了很多人的不满,难道爬虫能不能爬、怎么爬、谁的爬虫能爬,都得由被爬的公司决定吗?掌握了这种权力时,商业世界的唯利和自私立刻暴露无遗。

有一个说法是,互联网上50%的流量都是爬虫创造的。这个说法虽然夸张了点,但也体现出了爬虫的无处不在。爬虫之所以无处不在,是因为爬虫可以为互联网企业带来收益。

就拿电商网站来说,很多电商网站是愿意被比价网站或者其他购物信息网站爬取信息的,因为这样能够给他们的商品带来更多流量。但他们不愿意被其他电商网站获取价格信息和商品描述,因为担心其他电商网站恶意比价或进行抄袭。同时他们又经常去爬其他电商网站的数据,希望能够看到别人的价格。

这种纠结又复杂的心情就像学霸间的竞争,学霸可以给学渣抄笔记,因为知道学渣再怎么努力也就是六七十分的水平,但学霸对其他学霸一定会严防死守,因为只有学霸和学霸之间才有真正的竞争。所以像京东和淘宝这样的“顶级学霸”都会在协议中写清楚,禁止对方爬取数据。当然,至于双方是否遵守这一君子协定就很难说了。

同时也有一些网站,一开始会默许其他网站爬取数据,一段时间过后却又会将爬取数据的网站告上法庭。最典型的例子就是领英,领英在2017年曾经将一家名为HiQ的数据分析企业告上法庭,原因是认定这家企业抓取领英用户的就职状态信息,提供给另外两家利用机器学习分析员工跳槽倾向和职业技能的企业。

结果却是即使打着保护用户隐私的旗号,领英仍然败诉并且被联邦法庭要求开放数据接口。原因是HiQ已经这样爬取领英的数据长达五年,领英一直知情并且曾经去参加过HiQ组织的论坛峰会。如今领英自己开展了和HiQ类似的业务,就要断了HiQ的生路。

从2000年到2017年,之所以会有这两场结局截然不同的官司,是因为我们制造爬虫和反爬虫的初衷都发生了变化。从一开始的获取信息和保护隐私,变成了如今的获取商业利益和反制对手

爬虫制造者说:道德是反爬虫的最好方法?

就着这个话题,我们还和两位码Python的程序员朋友聊了聊。

要知道程序员们是一种非常具有个性的生物,很难在问题中达成一致,尤其是在“什么才是最好的语言”、“早期的锤子手机是不是垃圾”这样的问题上。但在反爬虫的问题上,程序员们似乎呈现出了空前的一致。

一位就职于小型OTA的程序员表示,公司在刚刚起步时经常会要求他们爬取旅游网站的旅游路线,这时他们通常会选择中青旅遨游网这样传统企业基因更浓厚的网站,因为他们“反爬虫能力几乎为0”。

而另一位大厂程序员表示,公司通常会把爬取数据这样的脏活累活外包出去,而在反爬虫时,如果数据爬取方技术足够好,不给服务器带来过分的带宽压力,在满足了KPI前提下他们甚至会睁一只眼闭一只眼。

同时双方都承认,有时候会自己出于兴趣制作一些小爬虫程序,方便获取一些数据。

在提到爬虫技术的合法性时,他们告诉我,法律很难阻止爬虫技术。除非在竞品之间、涉及到对用户原创内容的批量搬运,类似之前360快视频批量搬运B站视频、以及近期出现的大众点评批量搬运小红书内容等等。至于那些爬取他人数据用作分析的,一方面难以取证确定对象,另一方面整个诉讼过程会非常漫长,企业很难清楚的展现出自己哪里受了损失,通常是以“不正当竞争”这样的万金油控诉对方。

当我们问到他们,从技术角度有没有什么好的反爬虫手段时,他们告诉我最好的反爬虫手段并非技术也并非法律,而是公关——带上截图找几个媒体爆料一下,带点侵权、入侵数据库、隐私信息方面的影射,就可以立刻从道德的制高点搞臭对方,让人不会注意到你司的反爬虫技术不到位。如果对方是上市公司,效果更佳。

AI时代遇上AI爬虫,战争才刚刚开始

“道德反爬虫”虽然只是笑谈,但一定程度上表示出了企业技术人员对爬虫的无可奈何。但可以预见的是,随着大数据和机器学习应用越来越广,对爬虫睁一只眼闭一只眼、与爬虫和平共处的时代很快就要过去了。

最主要的问题是,爬虫的出现会极大地增加数据分析难度。

当数据分析企业利用爬虫获取数据进行分析时,大量爬虫的存在正在让这些数据失实。文章浏览量的失实让我们误判人们对新闻事实的关注程度、爬虫衍生出的虚拟IP需要在数据清洗时剔除……技术越高超的爬虫,在行为模式上就越接近真人,也就更加增加数据分析时的难度。久而久之,那些我们以为从人类行为中寻找规律的算法,反而寻找到的是机器人的行为规律。

同时爬虫带来的流量波动也会让机器学习算法产生误判。

最典型的例子是机票的动态定价,网站会结合当下浏览量判定机票的抢手程度并且调整价格。这时如果有大量爬虫在浏览网站,算法就会给出和实际情况并不符合的定价,也损伤了消费者购买到廉价产品的权益。

甚至一些数据分析企业还打出了“AI爬虫”的招牌,让爬虫脚本的行为模式更加接普通用户,让被爬的企业难以发掘,甚至还会利用图像识别技术破解网站用作拦截的验证码。

在这种情况下,网站分辨人与机器人就变得更加困难也更加重要。很多网站也开始利用机器学习技术反制AI爬虫,比如为图形验证码动态打码应对图像识别。同时现在PC和移动终端的硬件技术发展,也让生物识别这种更复杂的验证手段有可能加入战斗。双方正在站在同一水平线上,利用技术互相斗法。

可以说爬虫技术和反爬虫技术之间斗争了十几年,可真正的“战争”却从现在才刚刚开始。在彻底制服恶意爬虫之前,对于一切大数据、精准预测之类的“吹嘘”,我们最好保持着三分怀疑。

免责声明:此文内容为第三方自媒体作者发布的观察或评论性文章,所有文字和图片版权归作者所有,且仅代表作者个人观点,与 无关。文章仅供读者参考,并请自行核实相关内容。投诉邮箱:editor@fromgeek.com。


企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。

2018-07-31
反爬虫战争进行了十八年,但一切才刚刚开始
原标题:反爬虫战争进行了十八年,但一切才刚刚开始在一大堆技术术语里,最为被普通人所熟知的大概就是“爬虫”了。

长按扫码 阅读全文

Baidu
map