當前位置:
首頁 > 科技 > 程序員爬蟲竟構成犯罪?

程序員爬蟲竟構成犯罪?

近期,一起關於爬蟲與反爬蟲的訴訟案件再次被推到了公眾面前。

公交作為互聯網從業者的必備通勤工具之一,是出行領域必爭的板塊。實時公交 APP 也就成為了熱門的應用場景,它們不僅可以為用戶提供定位、公交路線查詢等信息,還涉及路線規劃、實時公交信息地理位置等服務。在這其中,「酷米客」和「車來了」是大眾使用較為頻繁的兩款實時公交出行 APP。

「車來了」授意五名程序員爬取實時公交數據,竟構成犯罪行為

2012 年 10 月,深圳穀米科技有限公司推出了酷米客實時公交 APP。通過在公交車上安裝定位器,酷米客獲得了海量的實時公交位置數據,具有定位精度高、實時誤差小等明顯優勢,並迅速吸引了大批市場用戶。目前,酷米客 APP 擁有超過 5000 萬的註冊量,每日活躍用戶超過 400 萬。

但是 2015 年 11 月的時候,同為實時公交 APP 的「車來了」為了提升市場份額和信息查詢準確度,竟授意五位程序員員工利用爬蟲軟體獲取酷米客公司伺服器的公交車行駛信息、到站時間等實時數據。

厲害的是,這五位程序員分工十分明確:一位負責編寫爬蟲軟體程序;一位負責不斷更換爬蟲軟體程序內的 IP 地址,以防止被察覺;一位利用所設置的不同 IP 地址及爬蟲程序向酷米客發出數據請求;一位負責破解酷米客客戶端的加密演算法;在破解失敗後,另一位員工又聘請其他公司的技術人員幫忙攻破加密系統,使得爬蟲工作得以順利實施。這一系列數據操作「成效」斐然,幫助「車來了」獲取了大量的酷米客實時數據,日均可達 300-400 萬條。

花費了巨大人力、時間和經濟成本所獲得的信息卻被同行竊取了,還直接擠壓了自身的競爭優勢和交易機會,這讓酷米客怎麼甘心?

一怒之下,2016 年,酷米客將車來了告上了法庭。歷時兩年之久,這場糾紛案才最終一錘定音。今年 5 月,法院裁定車來了立即停止獲取、使用酷米客實時公交位置數據的不正當競爭行為,並賠償其經濟損失。

想必看到這裡,大家最為關心的問題是那五位程序員會獲罪嗎?雖然在訴訟過程中,五位程序員員工利用網路爬蟲二次獲取公交車輛實時信息的行為都只是因為履行工作職責,沒有用於謀取個人私利。然而,酷米客後台伺服器存儲的數據具有巨大的商業價值,未經其許可,任何人不得非法獲取該軟體的後台數據並用於經營行為——因此他們必須承擔連帶責任。

對此,中關村大數據聯盟副秘書長陳新河老師告訴 CSDN(ID:CSDNnews),「數據爬蟲的違法邊界一直是互聯網爭議的熱點,尤其是在大數據時代,隨著內容數據價值的日益凸顯,爬蟲侵權案也越來越多。」身處其中的程序員們,面對上級下發的「爬蟲需求」,是難以置身事外的,一不小心可能就入了局。

爬蟲犯罪的判定仍不明確,尚處於灰色地帶

事實上,爬蟲犯罪一直是個難以界定的灰色地帶。

網路爬蟲是一種自動獲取網頁內容的程序,通常情況下它是不違法的,比如很多人都會用到的百度搜索,除去其自營的百度知道、百度百科等,幾乎都是爬蟲採集下來的。作為一門技術,爬蟲本身並不違法,所以大多數情況下都可以放心大膽地用。一般而言,常見的爬蟲手段包括有構造合理的 HTTP 請求頭、設置 cookie、降低訪問頻率、隱含輸入欄位值、使用代理等等。

Robots 協議也稱為爬蟲協議、機器人協議,其全稱為「網路爬蟲排除標準」(Robots Exclusion Protocol)。網站通過 Robots 協議告訴爬蟲哪些頁面可以抓取,哪些頁面禁止抓取。

Robots 協議是搜索引擎行業內公認的、應當被遵守的商業道德。

儘管如此,以身試險的「勇者」仍是不計其數,包括我們耳熟的百度、360 搜索、大眾點評、今日頭條等:

2012 年,360 搜索違反 Robots 協議,強行抓取百度旗下百度知道、百度百科、百度貼吧、百度旅遊等內容,最終被裁定賠償百度 70 萬元。

2016 年,大眾點評網起訴百度公司。自 2012 年以來,百度公司未經許可在百度地圖、百度知道中大量抄襲、複製大眾點評網的用戶點評信息,直接替代大眾點評網向用戶提供的內容,給其自身造成巨大損失。百度最終敗訴,停止了在百度地圖等產品中使用點評信息,並賠償 300 萬元。

2017 年,秀淘破解了今日頭條伺服器的防抓措施,使後者損失技術服務費兩萬元。最終法庭判決,涉事者因為觸犯非法獲取計算機信息系統數據罪,被判九個月至一年不等的有期徒刑,並處罰金。這也是國內首起「爬蟲入刑」案。

......

其實可以預料的是,因為目前監管法律的不完善,仍有很多漏網之魚。但是隨著數據價值的不斷挖掘,未來的爬蟲侵權案只會越來越多。

第三方網站該如何應對日益猖獗的爬蟲行為?

那面對日益猖獗的爬蟲行徑,作為網站方該如何應對?

既然有「爬蟲」,那自然會有「反爬蟲」。網站一般採用的反爬蟲技術可以分為四個種類:通過 User-Agent 來控制訪問、通過 IP 限制來反爬蟲、通過 JS 腳本來防止爬蟲、通過 robots.txt 來限制爬蟲。

下面我們通過幾個熱門站點分析下常見的反爬蟲機制:

一、豆瓣

很多的爬蟲新手都會爬取豆瓣來練手,但豆瓣並不是完全開放的態度。它的反爬蟲機制如下:

在沒有攜帶 cookie 的情況下,如果某個 IP 短時間高並發請求網站,該 IP 會立馬被封。當 IP 被封,登錄豆瓣網站會解封。

在攜帶 cookie 的情況下,某個 IP 請求網站過於頻繁。豆瓣的反爬蟲機制變為只封 cookie 不封 IP。也就說退出登錄或換個賬號還能繼續訪問。

可以看出,豆瓣是一個十分體諒爬蟲新手的網站。爬蟲者只要在代碼中登錄賬號並降低並發數,再隨機延遲等待一段時間,爬蟲程序就不會被封。

二、拉勾網

拉勾網最初的反爬蟲機制沒有現在這麼嚴格,但是隨著關注者的增多,網站管理員為了保護伺服器增加了一些手段。該網站的反爬蟲機制如下:

在沒有登錄的情況下,程序只能連續訪問 3 個 Url。如果再繼續訪問,網站會將鏈接重定向,然後提示我們登錄。

如果在登錄情況下,連續請求部分 Url 之後 IP 會被封。

針對這樣的爬蟲機制,爬蟲者只能使用 IP 代理池來突破。

三、汽車之家

汽車之家論壇的反爬蟲機制比較高級,它利用前端頁面自定義字體的方式來實現反爬的技術手段。具體使用到是 CSS3 中的自定義字體模塊,將自定義的 Web 字體嵌入到了指定網頁中去。這就導致在爬取論壇帖子的口碑時,獲取到的返迴文本中每隔幾個字就出現一個亂碼符號。

每次訪問論壇頁面,其中字體不變,但字元編碼是變化的。因此,爬蟲者需要根據每次訪問動態解析字體文件。具體需要先訪問爬取的頁面,獲取字體文件的動態訪問地址並下載字體,讀取 JS 渲染後的文本內容,替換其中的自定義字體編碼為實際文本編碼,才可復原網頁為頁面所見內容。

......

但是,反爬蟲不是萬能的。「以保護用戶數據之名,行數據壟斷之實的全面禁止爬取策略也將受到數據經濟時代新反壟斷法的挑戰。」陳新河如是說。

程序員如何在數據爬取中「置身事外」?

但是,技術無罪,那麼程序員就該有罪嗎?聽從上級吩咐寫個幾行代碼就莫名其妙被關起來了?可怕的是不僅一臉懵還無處申冤。

在知乎上,也有很多關於爬蟲犯罪的疑問。在「爬蟲究竟是合法還是違法的?」(https://www.zhihu.com/question/291554395)問題下,知乎用戶@筆芯設計匠 表示,爬蟲開發者的道德自持和企業經營者的良知才是避免觸碰法律底線的根本所在:

我們身邊的網路已經密密麻麻爬滿了各種網路爬蟲,它們善惡不同,各懷心思。作為爬蟲開發者,如何在使用爬蟲時避免進局子的厄運呢?

1. 嚴格遵守網站設置的 Robots 協議;

2. 在規避反爬蟲措施的同時,需要優化自己的代碼,避免干擾被訪問網站的正常運行;

3. 在設置抓取策略時,應注意編碼抓取視頻、音樂等可能構成作品的數據,或者針對某些特定網站批量抓取其中的用戶生成內容;

4. 在使用、傳播抓取到的信息時,應審查所抓取的內容,如發現屬於用戶的個人信息、隱私或者他人的商業秘密的,應及時停止並刪除。

所以,面對上級危險的爬蟲請求,程序員們該好好衡量下了。

對於涉及法律風險的數據爬取要求,程序員最好在採集前和上級深聊一下,給後者科普一下其中的法律風險。如果對方仍執意採集,建議事先和公司簽署一份免責協議,避免在風險降臨時被拉下水。

參考資料:

https://blog.csdn.net/ChenXinHe2020/article/details/81326431;

https://www.zhihu.com/question/291554395;

《盤點一些網站的反爬蟲機制》,作者極客猴,獲作者授權使用;

感謝陳新河老師對本文提供的指導意見。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

Python 爬取了馬蜂窩的出行數據,告訴你這個夏天哪裡最值得去!
氣溫攀升 34.4% 度!這裡尤其熱

TAG:CSDN |