當前位置:100EC>互聯網研究>分析:“放下你手里的代碼”:爬蟲技術的善與惡、罪與罰
分析:“放下你手里的代碼”:爬蟲技術的善與惡、罪與罰
發布時間:2019年10月29日 10:18:32

(網經社訊)“放下你手里的代碼,小心被抓?!?/p>

  最近程序員圈子不乏這樣的戲謔調侃。

  原因是最近發生的多起涉及爬蟲技術的公司被司法部門調查。近日,51信用卡被查,更是將暴力催收背后非法使用爬蟲技術爬取個人隱私數據的丑行,暴露在陽光之下。

  一時間,“爬蟲”成為眾矢之的,一些公司緊急下架了爬蟲相關的招聘信息,給大數據風控、人工智能從業者帶來些許恐慌,頭發又多落了幾根。

  實際上,大部分人都聽說過爬蟲,認為爬蟲就是到人家網站上去爬東西、偷數據,有些人甚至認為只要有爬蟲,什么數據都可以搞到。

  今天,我們就打開爬蟲這個“工具箱”,把涉及到的技術盲區放到燈光下,讓大家可以清楚地看下。下面,本文就從這個角度來聊聊爬蟲這個熟悉而又陌生的技術。

  一

  爬蟲的技術原理

  搜索引擎收集網上信息的主要手段就是網絡爬蟲(也叫網頁蜘蛛、網絡機器人)。它是一種“自動化瀏覽網絡”的程序,按照一定的規則,自動抓取互聯網信息,比如:網頁、各類文檔、圖片、音頻、視頻等。搜索引擎通過索引技術組織這些信息,根據用戶的查詢,快速地提供搜索結果。

  設想一下,我們平時瀏覽網頁的時候會怎么做?

  一般情況下,首先,會用瀏覽器打開一個網站的主頁,在頁面上尋找感興趣的內容,然后點擊本站或其它網站在該網頁上的鏈接,跳轉到新的網頁,閱讀內容,如此循環往復。如下圖所示:

   圖中的虛線圓角矩形代表一個網站,每個實線矩形表示一個網頁??梢鑰吹?,每個網站一般以首頁為入口,該首頁鏈接到幾個、幾萬個、甚至上千萬個的內部網 頁。同時,這些網頁往往又鏈接了很多外部網站。例如,用戶從蘇寧金融的網頁為起點,瀏覽發現了PP視頻的鏈接,點擊后跳轉到了PP視頻主頁,作為體育愛好 者,在體育頻道中找到了相關的新浪微博的內容,再次點擊后又來到微博的頁面繼續閱讀,從而形成了一條路徑。如果把所有的可能路徑呈現出來,就會看到一個網絡結構。

  網絡爬蟲模擬了人們瀏覽網頁的行為,只是用程序代替了人類的操作,在廣度和深度上遍歷網頁。如果把互聯網上的網頁或網站理解為一個個節 點,大量的網頁或網站通過超鏈接形成網狀結構。爬蟲通過遍歷網頁上的鏈接,從一個節點跳轉到下一個節點,就像是在一張巨大的網上爬行,但是比人類的速度更 快,跳轉的節點更全面,所以被形象地稱為網絡爬蟲或網絡蜘蛛。

  二

  爬蟲的發展歷史

  網絡爬蟲最早的用途是服務于搜索引擎的數據收集,而現代意義上的搜索引擎的鼻祖是1990年由加拿大麥吉爾大學(University of McGill)學生Alan Emtage發明的的Archie。

  人們使用FTP服務器共享交流資源,大量的文件散布在各個FTP主機上,查詢起來非常不方便。因此,他開發了一個可以按照文件名查找文 件的系統,能定期搜集并分析FTP服務器上的文件名信息,自動索引這些文件。工作原理與現在的搜索引擎已經非常接近,依靠腳本程序自動搜索分散在各處 FTP主機中的文件,然后對有關信息進行索引,供使用者以一定的表達式查詢。

  世界上第一個網絡爬蟲“互聯網漫游者”(“www wanderer”)是由麻省理工學院(MIT)的學生馬休·格雷(Matthew Gray)在 1993 年寫成。剛開始,它只用來統計互聯網上的服務器數量,后來則發展為能夠通過它檢索網站域名。

  隨著互聯網的迅速發展,使得檢索所有新出現的網頁變得越來越困難,因此,在“互聯網漫游者”基礎上,一些編程者將傳統的“蜘蛛”程序工作原理作了些改進。其設想是,既然所有網頁都可能有連向其他網站的鏈接,那么從跟蹤一個網站的鏈接開始,就有可能檢索整個互聯網。

  其后,無數的搜索引擎促使了爬蟲越寫越復雜,并逐漸向多策略、負載均衡及大規模增量抓取等方向發展。爬蟲的工作成果是搜索引擎能夠遍歷鏈接的網頁,甚至被刪除的網頁也可以通過“網頁快照”的功能訪問。

  三

  網絡爬蟲的禮儀

  禮儀一:robots.txt文件

  每個行業都有其Code of Conduct,成為行為準則或行為規范。比如,你是某個協會中的成員,那就必須遵守這個協會的行為準則,破壞了行為準則是要被踢出去的。

  最簡單的例子,你加入的很多微信群,一般群主都會要求不可以私自發廣告,如果未經允許發了廣告,會被立刻踢出群,但是發紅包就沒事,這就是行為準則。

  爬蟲也有行為準則。早在1994年,搜索引擎技術剛剛興起。那時的初創搜索引擎公司,比如AltaVista和DogPile,通過爬 蟲技術來采集整個互聯網的資源,與Yahoo這樣的資源分類網站激烈競爭。隨著互聯網搜索規模的增長,爬蟲收集信息的能力快速進化,網站開始考慮對于搜索 引擎爬取信息做出限制,于是robots.txt應運而生,成為爬蟲界的“君子協定”。

  robots.txt文件是業內慣用做法,不是強制性的約束。robots.txt的形式如下:

   在上面這個robots.txt例子中,所有的爬蟲都被禁止訪問網站的任意內容。但是Google的爬蟲機器人,可以訪問除了private位置的所有 內容。如果一個網站上沒有robots.txt,是被認為默許爬蟲爬取所有信息。如果robots.txt做了訪問的限制,但是爬蟲卻沒有遵守,那就不是 技術實現這么簡單的事情了。

  禮儀二:爬取吞吐量的控制

  曾經出現假冒Google搜索引擎的爬蟲去對網站進行DDoS攻擊,讓網站癱瘓的事情。近年來,惡意爬蟲造成的 DDoS攻擊行為有增無減,給大數據行業蒙上了爬蟲的陰影。因為其背后的惡意攻擊者,往往具備更為復雜和專業的技術,能繞過各種防御機制,讓防范這樣攻擊 行為難上加難。

  禮儀三:做一個優雅的爬蟲

  優雅的爬蟲背后,一定站著一個文明人或者一個文明團隊。他們會考慮自己寫的爬蟲程序是否符合robots.txt協議,是否會對被爬網站的性能造成影響,如何才能不侵害知識產權所有者的權益以及非常重要的個人隱私數據等問題。

  出于能力的差別,并不是每個爬蟲團隊都能考慮到這些問題。2018年,歐盟出臺的《General Data Protection Regulation》(通用數據?;ぬ趵┲卸允蕕謀;ぷ齔雋搜細竦乃得?。2019年5月28日,國家互聯網信息辦公室發布的《數據安全管理辦法》 (征求意見稿)對爬蟲和個人信息安全做出了非常嚴格的規定。比如:

 ?。?)第十六條 網絡運營者采取自動化手段訪問收集網站數據,不得妨礙網站正常運行;此類行為嚴重影響網站運行,如自動化訪問收集流量超過網站日均流量三分之一,網站要求停止自動化訪問收集時,應當停止。

 ?。?)第二十七條 網絡運營者向他人提供個人信息前,應當評估可能帶來的安全風險,并征得個人信息主體同意。

  其實,我國2017年6月1日施行的《中華人民共和國網絡安全法》第四章第四十一條和四十四條就已經對個人隱私信息數據的收集和使用做出明文規定,這也與爬蟲直接相關。

  法律制度的出臺,給技術的邊界做出了明確的限定,技術無罪并不能作為技術實施者為自己開脫的理由。爬蟲在實現自己需求的同時,必須做到嚴格遵守行為準則和法律條例。

  四

  各類反爬蟲技術介紹

  為了?;ぷ約漢戲ㄈㄒ娌槐歡褚馇趾?,不少網站和應用APP應用了大量的反爬技術。這使得爬蟲技術中又衍生出反反爬蟲技術,比如各類滑動拼圖、文字點選、圖標點選等驗證碼的破解,它們相互促進、相互發展、相互傷害著。

  反爬蟲的關鍵在于阻止被爬蟲批量爬取網站內容,反爬蟲技術的核心在于不斷變更規則,變換各類驗證手段。

  這類技術的發展甚至讓人癡迷,比DOTA對戰還讓人熱血沸騰。從那晃動如波浪的文字驗證碼圖形的偽裝色里彷佛都能看得見程序員的頭發。

  1、圖片/Flash

  這是比較常見的反爬手段,將關鍵數據轉為圖片,并添加上水印,即使使用了OCR(Optical Character Recognition,文字識別)也無法識別出來,讓爬蟲端獲取了圖片也得不到信息。早期一些電商的價格標簽中經常見到這種方式。

  2、JavaScript混淆技術

  這是爬蟲程序員遇到最多的一種反爬方式,簡單來說其實就是一種障眼法,本質上還是一種加密技術。很多網頁中的數據是 使用JavaScript程序來動態加載的,爬蟲在抓取這樣的網頁數據時,需要了解網頁是如何加載該數據的,這個過程被稱為逆向工程。為了防止被逆向工 程,就用到JavaScript混淆技術,加JavaScript代碼進行加密,讓別人看不懂。不過這種方式屬于比較簡單的反爬方式,屬于爬蟲工程師練級 的初級階段。

  3、驗證碼

  驗證碼是一種區分用戶是計算機還是人的公共全自動程序,也是我們經常遇到的一種網站訪問驗證方式,主要分為以下幾種:

 ?。?)輸入式驗證碼

  這是最最常見的,通過用戶輸入圖片中的字母、數字、漢子等字符進行驗證。

   圖中CAPTCHA 的全名是(Completely Automated Public Turing test to tell Computers and Humans Apart),中文翻譯為:全自動區分計算機與人類的圖靈測試。實現的方式很簡單,就是問一個電腦答不出來但人類答得出來的問題。不過,現在的爬蟲往往會 用深度學習技術對這樣的驗證碼進行破解,這樣的圖靈測試已經失效。

 ?。?)滑塊式驗證碼

  鑒于輸入式的圖形驗證碼的缺點,容易被破解,而且有時候人類都識別不了?;檠櫓ぢ牒崢粘鍪?,這種驗證碼操作簡便, 破解難度大,很快就流行起來了。破解滑塊驗證碼存在兩大難點:一是必須知道圖形缺口在哪里,也就是得知道滑塊滑到哪;二是要模仿出人類滑動的手勢。這樣的 驗證碼增加了一定的難度,也給爬蟲界增加了很多樂趣,一時間大量破解滑塊驗證碼的技術出現。

 ?。?)點擊式的圖文驗證和圖標選擇

  圖文驗證,是通過文字提醒用戶點擊圖中相同字的位置進行驗證。

  圖標選擇,是給出一組圖片,按要求點擊其中一張或者多張。

  這兩種原理相似,只不過是一個給出文字,點擊圖片中的文字;一個給出圖片,點出符合內容的圖片。這兩種方法的共同點就是體驗差,被廣為詬病。

 ?。?)手機驗證碼

  對于一些重要的敏感信息訪問,網站或APP端一般會提供填寫手機驗證碼的要求,通過手機接受網站發送的驗證碼來進一步訪問,這種方式對于數據隱私的?;け冉蝦?。

  4、賬號密碼登陸

  網站可以通過賬號登陸來限制爬蟲的訪問權限,個人在使用很多網站服務的時候一般是需要進行賬號注冊的,使用的時候需 要通過賬號密碼登陸才能繼續使用服務。網站可以利用用戶瀏覽器的Cookie來對用戶的身份進行識別,通過保存在用戶本地瀏覽器中加密的Cookie數據 來進行用戶訪問會話的跟蹤。這一般作為前面幾種反爬方式的補充。

  五

  爬蟲技術的發展方向

  傳統網絡爬蟲最大的應用場景是搜索引擎,普通的企業更多是做網站或應用。后來隨著網絡數據分析的需要,以及互聯網上的輿情事件層出不窮,針對網絡爬蟲有了大量的需求,采集的對象主要是些新聞資訊。

  近些年,由于大數據處理和數據挖掘技術的發展,數據資產價值的概念深入人心,爬蟲技術得到更加廣泛和深入的發展,采集對象也更豐富,高性能、并發式的技術指標也更高。

  圍繞網絡爬蟲合法性的討論仍然存在,情況也比較復雜。目前的趨勢下,許多法律問題還處于模糊地帶,往往取決于具體的案例影響。然而,可 以肯定的是,只要有互聯網,就會有網絡爬蟲。只有網絡爬蟲讓體量巨大的互聯網變得可以搜索,使爆炸式增長的互聯網變得更加容易訪問和獲取,在可預見的未 來,互聯網爬蟲技術將繼續得到發展。

  互聯網作為人類歷史最大的知識倉庫,是非結構化或非標準化的?;チ暇奐舜罅康奈謀?、圖片、多媒體等數據,內容雖然非常有價值,但 是知識提取的難度仍然非常巨大。語義互聯網、知識共享等概念越來越普及,真正語義上的互聯網將是網絡爬蟲的目標。此外,物聯網技術的發展,將是互聯網的升 級形式,也將是爬蟲技術未來發展的方向。(來源:公眾號“蘇寧財富資訊” 文/沈春澤 李加慶)

一年一度的“雙11”電商年終落幕,根據往年消費投訴情況顯示,先漲后降、虛假宣傳、定金不退、發貨遲緩、退換貨受限、信息泄露、快遞延誤是消費者主要遇到的問題。為此,電訴寶(電子商務消費糾紛調解平臺)進行2019電商系列調查專項行動之—“雙11”專場,通過發布快評、消費預警、投訴受理、滾動曝光、專題聚焦、密集播報、媒體聯動、律師咨詢、糾紛調解、典型通報等10大方式,關注電商大促期間的消費權益問題。如果您有相關線索,請提供給我們!

【版權聲明】秉承互聯網開放、包容的精神,網經社歡迎各方(自)媒體、機構轉載、引用我們原創內容,但要嚴格注明來源網經社;同時,我們倡導尊重與?;ぶ恫?,如發現本站文章存在版權問題,煩請將版權疑問、授權證明、版權證明、聯系方式等,發郵件至[email protected],我們將第一時間核實、處理。

平臺名稱
平臺回復率
回復時效性
用戶滿意度