反爬蟲戰(zhàn)爭進(jìn)行了十八年,但一切才剛剛開始

原標(biāo)題:反爬蟲戰(zhàn)爭進(jìn)行了十八年,但一切才剛剛開始

在一大堆技術(shù)術(shù)語里,最為被普通人所熟知的大概就是“爬蟲”了。其實(shí)爬蟲這個(gè)名字就已經(jīng)特別好地表現(xiàn)出了這項(xiàng)技術(shù)的作用——像密密麻麻的蟲子一樣分布在網(wǎng)絡(luò)上,爬行至每一個(gè)角落獲取數(shù)據(jù);也一定程度上表達(dá)了人們對(duì)這項(xiàng)技術(shù)的情感傾向——蟲子或許無害,但總是不受歡迎的。

有關(guān)爬蟲的功能、益處或危害,此前已經(jīng)有過很多討論。因?yàn)榕老x技術(shù)造成的大量IP訪問網(wǎng)站侵占帶寬資源、以及用戶隱私和知識(shí)產(chǎn)權(quán)等危害,很多互聯(lián)網(wǎng)企業(yè)都會(huì)花大力氣進(jìn)行“反爬蟲”。

相比爬蟲技術(shù)本身,反爬蟲其實(shí)更加復(fù)雜,發(fā)展歷程也更加有趣。

我們?nèi)绾畏磁老x?先禮后兵、再對(duì)簿公堂

幾乎是和爬蟲技術(shù)誕生的同一時(shí)刻,反爬蟲技術(shù)也誕生了。在90年代開始有搜索引擎網(wǎng)站利用爬蟲技術(shù)抓取網(wǎng)站時(shí),一些搜索引擎從業(yè)者和網(wǎng)站站長通過郵件討論定下了一項(xiàng)“君子協(xié)議”—— robots.txt。即網(wǎng)站有權(quán)規(guī)定網(wǎng)站中哪些內(nèi)容可以被爬蟲抓取,哪些內(nèi)容不可以被爬蟲抓取。這樣既可以保護(hù)隱私和敏感信息,又可以被搜索引擎收錄、增加流量。

爬蟲技術(shù)剛剛誕生時(shí)我們還處于上古時(shí)代,互聯(lián)網(wǎng)是一片賢者云集的樂土,大多數(shù)從業(yè)者都會(huì)默守這一協(xié)定,畢竟那時(shí)候信息和數(shù)據(jù)都沒什么油水可撈。但很快互聯(lián)網(wǎng)上開始充斥著商品信息、機(jī)票價(jià)格、個(gè)人隱私……在利益的誘惑下,自然有些人會(huì)開始違法爬蟲協(xié)議了。

當(dāng)君子協(xié)議失效,我們開始改用技術(shù)手段阻攔爬蟲的入侵。比如從訪問數(shù)量上發(fā)現(xiàn)爬蟲,當(dāng)我們?cè)谀骋痪W(wǎng)站瀏覽過快時(shí),系統(tǒng)往往會(huì)要求輸入驗(yàn)證碼,就是因?yàn)檫@種快速瀏覽的行為很接近爬蟲。或者是不定期改變HTML標(biāo)簽,使之無法與Web排序匹配來限制爬蟲。

但是即便如此,我們也沒有任何方法可以禁止爬蟲在網(wǎng)站中出入,只能加大爬蟲的訪問難度。如果網(wǎng)站可以供給人類訪問,就一定也可以被爬蟲訪問。而且如果從底層完全組織爬蟲抓取,也很可能讓網(wǎng)站無法被搜索引擎收錄。

所以,在所有的先禮后兵都對(duì)爬蟲失效時(shí)。最后反爬蟲的手段只有最后一項(xiàng)——對(duì)簿公堂。

兩場官司和十七年,爬蟲沒變,我們變了

歷史上第一樁關(guān)于爬蟲的官司誕生在2000年,eBay將一家聚合價(jià)格信息的比價(jià)網(wǎng)站BE告上了法庭,eBay聲稱自己已經(jīng)將哪些信息不能抓取寫進(jìn)了爬蟲協(xié)議中,但BE違反了這一協(xié)議。但BE認(rèn)為eBay上的內(nèi)容屬于用戶集體貢獻(xiàn)而不歸用戶所有,爬蟲協(xié)議不能用作法律參考。

最后經(jīng)過業(yè)內(nèi)反復(fù)討論和法庭上的幾輪唇槍舌戰(zhàn),最終以eBay勝訴告終,也開了用爬蟲協(xié)議作為主要參考的先河。

但這也引起了很多人的不滿,難道爬蟲能不能爬、怎么爬、誰的爬蟲能爬,都得由被爬的公司決定嗎?掌握了這種權(quán)力時(shí),商業(yè)世界的唯利和自私立刻暴露無遺。

有一個(gè)說法是,互聯(lián)網(wǎng)上50%的流量都是爬蟲創(chuàng)造的。這個(gè)說法雖然夸張了點(diǎn),但也體現(xiàn)出了爬蟲的無處不在。爬蟲之所以無處不在,是因?yàn)榕老x可以為互聯(lián)網(wǎng)企業(yè)帶來收益。

就拿電商網(wǎng)站來說,很多電商網(wǎng)站是愿意被比價(jià)網(wǎng)站或者其他購物信息網(wǎng)站爬取信息的,因?yàn)檫@樣能夠給他們的商品帶來更多流量。但他們不愿意被其他電商網(wǎng)站獲取價(jià)格信息和商品描述,因?yàn)閾?dān)心其他電商網(wǎng)站惡意比價(jià)或進(jìn)行抄襲。同時(shí)他們又經(jīng)常去爬其他電商網(wǎng)站的數(shù)據(jù),希望能夠看到別人的價(jià)格。

這種糾結(jié)又復(fù)雜的心情就像學(xué)霸間的競爭,學(xué)霸可以給學(xué)渣抄筆記,因?yàn)橹缹W(xué)渣再怎么努力也就是六七十分的水平,但學(xué)霸對(duì)其他學(xué)霸一定會(huì)嚴(yán)防死守,因?yàn)橹挥袑W(xué)霸和學(xué)霸之間才有真正的競爭。所以像京東和淘寶這樣的“頂級(jí)學(xué)霸”都會(huì)在協(xié)議中寫清楚,禁止對(duì)方爬取數(shù)據(jù)。當(dāng)然,至于雙方是否遵守這一君子協(xié)定就很難說了。

同時(shí)也有一些網(wǎng)站,一開始會(huì)默許其他網(wǎng)站爬取數(shù)據(jù),一段時(shí)間過后卻又會(huì)將爬取數(shù)據(jù)的網(wǎng)站告上法庭。最典型的例子就是領(lǐng)英,領(lǐng)英在2017年曾經(jīng)將一家名為HiQ的數(shù)據(jù)分析企業(yè)告上法庭,原因是認(rèn)定這家企業(yè)抓取領(lǐng)英用戶的就職狀態(tài)信息,提供給另外兩家利用機(jī)器學(xué)習(xí)分析員工跳槽傾向和職業(yè)技能的企業(yè)。

結(jié)果卻是即使打著保護(hù)用戶隱私的旗號(hào),領(lǐng)英仍然敗訴并且被聯(lián)邦法庭要求開放數(shù)據(jù)接口。原因是HiQ已經(jīng)這樣爬取領(lǐng)英的數(shù)據(jù)長達(dá)五年,領(lǐng)英一直知情并且曾經(jīng)去參加過HiQ組織的論壇峰會(huì)。如今領(lǐng)英自己開展了和HiQ類似的業(yè)務(wù),就要斷了HiQ的生路。

從2000年到2017年,之所以會(huì)有這兩場結(jié)局截然不同的官司,是因?yàn)槲覀冎圃炫老x和反爬蟲的初衷都發(fā)生了變化。從一開始的獲取信息和保護(hù)隱私,變成了如今的獲取商業(yè)利益和反制對(duì)手

爬蟲制造者說:道德是反爬蟲的最好方法?

就著這個(gè)話題,我們還和兩位碼Python的程序員朋友聊了聊。

要知道程序員們是一種非常具有個(gè)性的生物,很難在問題中達(dá)成一致,尤其是在“什么才是最好的語言”、“早期的錘子手機(jī)是不是垃圾”這樣的問題上。但在反爬蟲的問題上,程序員們似乎呈現(xiàn)出了空前的一致。

一位就職于小型OTA的程序員表示,公司在剛剛起步時(shí)經(jīng)常會(huì)要求他們爬取旅游網(wǎng)站的旅游路線,這時(shí)他們通常會(huì)選擇中青旅遨游網(wǎng)這樣傳統(tǒng)企業(yè)基因更濃厚的網(wǎng)站,因?yàn)樗麄儭胺磁老x能力幾乎為0”。

而另一位大廠程序員表示,公司通常會(huì)把爬取數(shù)據(jù)這樣的臟活累活外包出去,而在反爬蟲時(shí),如果數(shù)據(jù)爬取方技術(shù)足夠好,不給服務(wù)器帶來過分的帶寬壓力,在滿足了KPI前提下他們甚至?xí)犚恢谎坶]一只眼。

同時(shí)雙方都承認(rèn),有時(shí)候會(huì)自己出于興趣制作一些小爬蟲程序,方便獲取一些數(shù)據(jù)。

在提到爬蟲技術(shù)的合法性時(shí),他們告訴我,法律很難阻止爬蟲技術(shù)。除非在競品之間、涉及到對(duì)用戶原創(chuàng)內(nèi)容的批量搬運(yùn),類似之前360快視頻批量搬運(yùn)B站視頻、以及近期出現(xiàn)的大眾點(diǎn)評(píng)批量搬運(yùn)小紅書內(nèi)容等等。至于那些爬取他人數(shù)據(jù)用作分析的,一方面難以取證確定對(duì)象,另一方面整個(gè)訴訟過程會(huì)非常漫長,企業(yè)很難清楚的展現(xiàn)出自己哪里受了損失,通常是以“不正當(dāng)競爭”這樣的萬金油控訴對(duì)方。

當(dāng)我們問到他們,從技術(shù)角度有沒有什么好的反爬蟲手段時(shí),他們告訴我最好的反爬蟲手段并非技術(shù)也并非法律,而是公關(guān)——帶上截圖找?guī)讉€(gè)媒體爆料一下,帶點(diǎn)侵權(quán)、入侵?jǐn)?shù)據(jù)庫、隱私信息方面的影射,就可以立刻從道德的制高點(diǎn)搞臭對(duì)方,讓人不會(huì)注意到你司的反爬蟲技術(shù)不到位。如果對(duì)方是上市公司,效果更佳。

當(dāng)AI時(shí)代遇上AI爬蟲,戰(zhàn)爭才剛剛開始

“道德反爬蟲”雖然只是笑談,但一定程度上表示出了企業(yè)技術(shù)人員對(duì)爬蟲的無可奈何。但可以預(yù)見的是,隨著大數(shù)據(jù)和機(jī)器學(xué)習(xí)應(yīng)用越來越廣,對(duì)爬蟲睜一只眼閉一只眼、與爬蟲和平共處的時(shí)代很快就要過去了。

最主要的問題是,爬蟲的出現(xiàn)會(huì)極大地增加數(shù)據(jù)分析難度。

當(dāng)數(shù)據(jù)分析企業(yè)利用爬蟲獲取數(shù)據(jù)進(jìn)行分析時(shí),大量爬蟲的存在正在讓這些數(shù)據(jù)失實(shí)。文章瀏覽量的失實(shí)讓我們誤判人們對(duì)新聞事實(shí)的關(guān)注程度、爬蟲衍生出的虛擬IP需要在數(shù)據(jù)清洗時(shí)剔除……技術(shù)越高超的爬蟲,在行為模式上就越接近真人,也就更加增加數(shù)據(jù)分析時(shí)的難度。久而久之,那些我們以為從人類行為中尋找規(guī)律的算法,反而尋找到的是機(jī)器人的行為規(guī)律。

同時(shí)爬蟲帶來的流量波動(dòng)也會(huì)讓機(jī)器學(xué)習(xí)算法產(chǎn)生誤判。

最典型的例子是機(jī)票的動(dòng)態(tài)定價(jià),網(wǎng)站會(huì)結(jié)合當(dāng)下瀏覽量判定機(jī)票的搶手程度并且調(diào)整價(jià)格。這時(shí)如果有大量爬蟲在瀏覽網(wǎng)站,算法就會(huì)給出和實(shí)際情況并不符合的定價(jià),也損傷了消費(fèi)者購買到廉價(jià)產(chǎn)品的權(quán)益。

甚至一些數(shù)據(jù)分析企業(yè)還打出了“AI爬蟲”的招牌,讓爬蟲腳本的行為模式更加接普通用戶,讓被爬的企業(yè)難以發(fā)掘,甚至還會(huì)利用圖像識(shí)別技術(shù)破解網(wǎng)站用作攔截的驗(yàn)證碼。

在這種情況下,網(wǎng)站分辨人與機(jī)器人就變得更加困難也更加重要。很多網(wǎng)站也開始利用機(jī)器學(xué)習(xí)技術(shù)反制AI爬蟲,比如為圖形驗(yàn)證碼動(dòng)態(tài)打碼應(yīng)對(duì)圖像識(shí)別。同時(shí)現(xiàn)在PC和移動(dòng)終端的硬件技術(shù)發(fā)展,也讓生物識(shí)別這種更復(fù)雜的驗(yàn)證手段有可能加入戰(zhàn)斗。雙方正在站在同一水平線上,利用技術(shù)互相斗法。

可以說爬蟲技術(shù)和反爬蟲技術(shù)之間斗爭了十幾年,可真正的“戰(zhàn)爭”卻從現(xiàn)在才剛剛開始。在徹底制服惡意爬蟲之前,對(duì)于一切大數(shù)據(jù)、精準(zhǔn)預(yù)測之類的“吹噓”,我們最好保持著三分懷疑。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2018-07-31
反爬蟲戰(zhàn)爭進(jìn)行了十八年,但一切才剛剛開始
原標(biāo)題:反爬蟲戰(zhàn)爭進(jìn)行了十八年,但一切才剛剛開始在一大堆技術(shù)術(shù)語里,最為被普通人所熟知的大概就是“爬蟲”了。

長按掃碼 閱讀全文