導讀:近期,一起關於爬蟲與反爬蟲的訴訟案件再次被推到了公眾面前。
本文經授權轉自公眾號CSDN(ID:CSDNnews),作者郭芮
公交作為網際網路從業者的必備通勤工具之一,是出行領域必爭的板塊。實時公交 APP 也就成為了熱門的應用場景,它們不僅可以為使用者提供定位、公交路線查詢等資訊,還涉及路線規劃、實時公交資訊地理位置等服務。在這其中,“酷米客”和“車來了”是大眾使用較為頻繁的兩款實時公交出行 APP。
01 “車來了”授意五名程式員爬取實時公交資料,竟構成犯罪行為
2012 年 10 月,深圳穀米科技有限公司推出了酷米客實時公交 APP。透過在公交車上安裝定位器,酷米客獲得了海量的實時公交位置資料,具有定位精度高、實時誤差小等明顯優勢,並迅速吸引了大批市場使用者。目前,酷米客 APP 擁有超過 5000 萬的註冊量,每日活躍使用者超過 400 萬。
但是 2015 年 11 月的時候,同為實時公交 APP 的“車來了”為了提升市場份額和資訊查詢準確度,竟授意五位程式員員工利用爬蟲軟體獲取酷米客公司伺服器的公交車行駛資訊、到站時間等實時資料。
厲害的是,這五位程式員分工十分明確:一位負責編寫爬蟲軟體程式;一位負責不斷更換爬蟲軟體程式內的 IP 地址,以防止被察覺;一位利用所設定的不同 IP 地址及爬蟲程式向酷米客發出資料請求;一位負責破解酷米客客戶端的加密演演算法;在破解失敗後,另一位員工又聘請其他公司的技術人員幫忙攻破加密系統,使得爬蟲工作得以順利實施。
這一系列資料操作“成效”斐然,幫助“車來了”獲取了大量的酷米客實時資料,日均可達 300-400 萬條。
花費了巨大人力、時間和經濟成本所獲得的資訊卻被同行竊取了,還直接擠壓了自身的競爭優勢和交易機會,這讓酷米客怎麼甘心?
一怒之下,2016 年,酷米客將車來了告上了法庭。歷時兩年之久,這場糾紛案才最終一錘定音。今年 5 月,法院裁定車來了立即停止獲取、使用酷米客實時公交位置資料的不正當競爭行為,並賠償其經濟損失。
想必看到這裡,大家最為關心的問題是那五位程式員會獲罪嗎?雖然在訴訟過程中,五位程式員員工利用網路爬蟲二次獲取公交車輛實時資訊的行為都只是因為履行工作職責,沒有用於謀取個人私利。然而,酷米客後臺伺服器儲存的資料具有巨大的商業價值,未經其許可,任何人不得非法獲取該軟體的後臺資料並用於經營行為——因此他們必須承擔連帶責任。
對此,中關村大資料聯盟副秘書長陳新河老師表示,“資料爬蟲的違法邊界一直是網際網路爭議的熱點,尤其是在大資料時代,隨著內容資料價值的日益凸顯,爬蟲侵權案也越來越多。”身處其中的程式員們,面對上級下發的“爬蟲需求”,是難以置身事外的,一不小心可能就入了局。
02 爬蟲犯罪的判定仍不明確,尚處於灰色地帶
事實上,爬蟲犯罪一直是個難以界定的灰色地帶。
網路爬蟲是一種自動獲取網頁內容的程式,通常情況下它是不違法的,比如很多人都會用到的百度搜索,除去其自營的百度知道、百度百科等,幾乎都是爬蟲採集下來的。作為一門技術,爬蟲本身並不違法,所以大多數情況下都可以放心大膽地用。一般而言,常見的爬蟲手段包括有構造合理的 HTTP 請求頭、設定 cookie、降低訪問頻率、隱含輸入欄位值、使用代理等等。
比如大資料(ID:hzdashuju)、CSDN等平臺此前就曾分享過北京二手房資料、網易雲音樂評論、馬蜂窩出行資料、大眾點評、福彩 3D 資訊等應用資料爬取。但並不是所有資料都有“可爬之機”,陳新河表示,“讓不讓爬,能不能超越規則之外的爬,能不能用技術手段跨越封鎖……這些打擦邊球的爬蟲就很容易擦槍走火。”——尤其是當站點明確宣告禁止爬蟲採集或轉載商業化,或當網站宣告了 Robots 協議時。
Robots 協議也稱為爬蟲協議、機器人協議,其全稱為“網路爬蟲排除標準”(Robots Exclusion Protocol)。網站透過 Robots 協議告訴爬蟲哪些頁面可以抓取,哪些頁面禁止抓取。
Robots 協議是搜尋引擎行業內公認的、應當被遵守的商業道德。
儘管如此,以身試險的“勇者”仍是不計其數,包括我們耳熟的百度、360 搜尋、大眾點評、今日頭條等:
-
2012 年,360 搜尋違反 Robots 協議,強行抓取百度旗下百度知道、百度百科、百度貼吧、百度旅遊等內容,最終被裁定賠償百度 70 萬元。
-
2016 年,大眾點評網起訴百度公司。自 2012 年以來,百度公司未經許可在百度地圖、百度知道中大量抄襲、複製大眾點評網的使用者點評資訊,直接替代大眾點評網向用戶提供的內容,給其自身造成巨大損失。百度最終敗訴,停止了在百度地圖等產品中使用點評資訊,並賠償 300 萬元。
-
2017 年,秀淘破解了今日頭條伺服器的防抓措施,使後者損失技術服務費兩萬元。最終法庭判決,涉事者因為觸犯非法獲取計算機資訊系統資料罪,被判九個月至一年不等的有期徒刑,並處罰金。這也是國內首起“爬蟲入刑”案。
-
……
其實可以預料的是,因為目前監管法律的不完善,仍有很多漏網之魚。但是隨著資料價值的不斷挖掘,未來的爬蟲侵權案只會越來越多。
03 第三方網站該如何應對日益猖獗的爬蟲行為?
那面對日益猖獗的爬蟲行徑,作為網站方該如何應對?
既然有“爬蟲”,那自然會有“反爬蟲”。網站一般採用的反爬蟲技術可以分為四個種類:透過 User-Agent 來控制訪問、透過 IP 限制來反爬蟲、透過 JS 指令碼來防止爬蟲、透過 robots.txt 來限制爬蟲。
下麵我們透過幾個熱門站點分析下常見的反爬蟲機制:
1. 豆瓣
很多的爬蟲新手都會爬取豆瓣來練手,但豆瓣並不是完全開放的態度。它的反爬蟲機制如下:
-
在沒有攜帶 cookie 的情況下,如果某個 IP 短時間高併發請求網站,該 IP 會立馬被封。當 IP 被封,登入豆瓣網站會解封。
-
在攜帶 cookie 的情況下,某個 IP 請求網站過於頻繁。豆瓣的反爬蟲機制變為只封 cookie 不封 IP。也就說退出登入或換個賬號還能繼續訪問。
可以看出,豆瓣是一個十分體諒爬蟲新手的網站。爬蟲者只要在程式碼中登入賬號並降低併發數,再隨機延遲等待一段時間,爬蟲程式就不會被封。
2. 拉勾網
拉勾網最初的反爬蟲機制沒有現在這麼嚴格,但是隨著關註者的增多,網站管理員為了保護伺服器增加了一些手段。該網站的反爬蟲機制如下:
-
在沒有登入的情況下,程式只能連續訪問 3 個 Url。如果再繼續訪問,網站會將連結重定向,然後提示我們登入。
-
如果在登入情況下,連續請求部分 Url 之後 IP 會被封。
針對這樣的爬蟲機制,爬蟲者只能使用 IP 代理池來突破。
3. 汽車之家
汽車之家論壇的反爬蟲機制比較高階,它利用前端頁面自定義字型的方式來實現反爬的技術手段。具體使用到是 CSS3 中的自定義字型模組,將自定義的 Web 字型嵌入到了指定網頁中去。這就導致在爬取論壇帖子的口碑時,獲取到的傳迴文字中每隔幾個字就出現一個亂碼符號。
每次訪問論壇頁面,其中字型不變,但字元編碼是變化的。因此,爬蟲者需要根據每次訪問動態解析字型檔案。具體需要先訪問爬取的頁面,獲取字型檔案的動態訪問地址並下載字型,讀取 JS 渲染後的文字內容,替換其中的自定義字型編碼為實際文字編碼,才可複原網頁為頁面所見內容。
……
但是,反爬蟲不是萬能的。“以保護使用者資料之名,行資料壟斷之實的全面禁止爬取策略也將受到資料經濟時代新反壟斷法的挑戰。”陳新河如是說。
04 程式員如何在資料爬取中“置身事外”?
但是,技術無罪,那麼程式員就該有罪嗎?聽從上級吩咐寫個幾行程式碼就莫名其妙被關起來了?可怕的是不僅一臉懵還無處申冤。
在知乎上,也有很多關於爬蟲犯罪的疑問。在“爬蟲究竟是合法還是違法的?”(https://www.zhihu.com/question/291554395)問題下,知乎使用者@筆芯設計匠 表示,爬蟲開發者的道德自持和企業經營者的良知才是避免觸碰法律底線的根本所在:
我們身邊的網路已經密密麻麻爬滿了各種網路爬蟲,它們善惡不同,各懷心思。作為爬蟲開發者,如何在使用爬蟲時避免進局子的厄運呢?
嚴格遵守網站設定的 Robots 協議;
在規避反爬蟲措施的同時,需要最佳化自己的程式碼,避免幹擾被訪問網站的正常執行;
在設定抓取策略時,應註意編碼抓取影片、音樂等可能構成作品的資料,或者針對某些特定網站批次抓取其中的使用者生成內容;
在使用、傳播抓取到的資訊時,應審查所抓取的內容,如發現屬於使用者的個人資訊、隱私或者他人的商業秘密的,應及時停止並刪除。
所以,面對上級危險的爬蟲請求,程式員們該好好衡量下了。
對於涉及法律風險的資料爬取要求,程式員最好在採集前和上級深聊一下,給後者科普一下其中的法律風險。如果對方仍執意採集,建議事先和公司簽署一份免責協議,避免在風險降臨時被拉下水。
參考資料:
-
https://blog.csdn.net/ChenXinHe2020/article/details/81326431;
-
https://www.zhihu.com/question/291554395;
-
《盤點一些網站的反爬蟲機制》,作者極客猴;
-
感謝陳新河老師對本文提供的指導意見。
本文經授權轉自公眾號CSDN(ID:CSDNnews),作者郭芮
更多精彩
在公眾號後臺對話方塊輸入以下關鍵詞
檢視更多優質內容!
PPT | 報告 | 讀書 | 書單
Python | 機器學習 | 深度學習 | 神經網路
區塊鏈 | 揭秘 | 乾貨 | 數學
猜你想看
Q: 技術有罪還是無罪?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉載 / 投稿請聯絡:baiyu@hzbook.com
更多精彩,請在後臺點選“歷史文章”檢視