請不要污名化爬蟲!

  • 2019 年 11 月 5 日
  • 筆記

文章作者:「夜幕團隊 NightTeam」 – Loco

導語

最近有一篇名為《只因寫了一段爬蟲,公司200多人被抓!》的文章非常火,相信大家應該都看到了。

這篇文章火起來之後,本來經過了一個多月的時間已經冷靜下來了的爬蟲圈子又開始人心惶惶了,各種說法層出不窮,大家都害怕自己一不小心就違法、進監獄過年,但是,事情真的是那樣嗎?

闢謠

我們先來看幾個明顯有誤,且傳播很廣的說法吧。

「最近很多做爬蟲的被抓了」

那篇文章的故事中提到的,是一家名為「巧達數據」的公司,如果之前有關注過相關新聞的朋友應該不難發現,這個公司實際上在3月份的時候就已經被查封了!

而文章後面提到的天翼徵信、新顏科技、魔蠍科技、公信寶、同盾科技相關事件,實際上也都是9月初的事情了,到目前為止已經一個多月了,並不是最近才發生的。

「最近一直有做爬蟲的公司被抓」

很多人跟我說他看到一直有公司因為做爬蟲被抓,但其實都是錯覺,說白了,這只是因為你關注的資訊來源(微信公眾號)或者是你朋友圈內的人關注的資訊來源都很集中、搞來搞去都是同一個圈子裡的人導致的。

同一個圈子裡的公眾號關注得多了之後,會出現一個很神奇的現象:

你會發現你時不時地就看到某一篇文章在換了個標題之後,又出現在了你的消息列表/朋友圈/看一看中,而這篇文章很可能你已經看到過很多遍了。

這種現象你見得多了之後,很可能就會不再點開文章查看,也自然就不會知道它裡面到底寫了什麼,你只是感覺好像一直有新的被抓的公司,但是實際上那些文章都只是換了個名字的舊文章。

「只要不遵守robots協議就會被抓」、「偽造UA(User-Agent)就會被抓」、「只要繞過、破解反爬蟲措施就會被抓」

這幾個說法的起源,是「某離職的頭條員工做了一個頭條的競品,還爬了頭條的數據,結果被告了」的那個案件的相關新聞。

但將這幾個說法再次搬出來並且還傳播開了的,是源於某個法律領域的公眾號在魔蠍科技等公司被抓後,寫的一篇對相關案件和法律的解讀(當時是爆文,朋友圈都在刷屏)。


我們先來說說傳播最廣的這個法律領域的公眾號所說的吧。律師畢竟不是做技術的,對很多技術方面的東西了解的並不多,所以有些內容在做技術的人看來其實是挺搞笑的。

但由於那位律師的文章當時太火了,很多人直接複製粘貼了他對相關法律的解讀,所以這幾種說法就被迅速流傳了開來。

那麼這幾個說法的問題在哪裡呢?

robots協議

robots協議實際上是君子協議,並不是法律明文規定的限制,最早只是針對搜索引擎爬蟲而定的東西,但現在做搜索引擎爬蟲的並不多,通常我們說的爬蟲都是垂直爬蟲(意思是針對某一個或多個網站/APP採集數據的爬蟲)。

而這個「不遵守robots協議就會被抓」的說法最搞笑的地方就在於,現在幾乎所有的網站robots.txt文件里都會像這樣寫:

User-agent: Baiduspider  Disallow: /balabala    User-agent: 各種搜索引擎爬蟲的UA  Disallow: /balabala    User-Agent: *  Disallow: /

注意這裡的最後一個User-Agent,這個星號的意思是其他所有的爬蟲,而Disallow後面跟著的斜杠,意思是禁止訪問所有頁面

好了,如果遵守這個協議的話,除了搜索引擎的爬蟲以外,誰都別玩了,要知道現在中國的大環境就是大家都不願意把數據給開放出來,生怕別人拿了之後直接做一個競品出來跟自己搶生意,所以根本沒有國外網站上很常見的開放平台

註:開放平台就是一個官方的、提供數據的地方。

所以如果真的都遵守這個協議的話,各種大數據分析都要涼涼,連數據都拿不到,分析啥呢?

註:別扯自家生產數據,沒人只分析自家、不分析別人的。

偽造UA(User-Agent)

這個比說robots協議還搞笑,因為…現在根本沒人直接根據UA來判斷是否是同一個用戶,改不改UA對人家反爬蟲機制的判斷一點影響都沒有。

那位律師的這個說法,多半因為看了一些比較水的爬蟲文章里說「修改UA可以繞過反爬」而理解出來的

然後肯定有人要說了:「不管怎麼樣你都把UA改了啊」(有人跟我這麼說過類似的話),你知道UA是幹啥的么?

UA就只是一個特徵字元串而已,它和robots一樣,同樣算是一個君子協議(不懂的朋友請閱讀RFC中HTTP協議的部分),說白了這玩意就跟軟體的名字一樣,叫啥都行!

你看哪個明星很有名,你把自己的名字改得跟他一樣,也沒人會說你,因為這本來就沒有任何問題!

繞過、破解反爬蟲措施

說個最常見、最初級的解決反爬蟲措施的辦法:自動化測試工具控制瀏覽器進行請求。

請問瀏覽器請求時,如果沒有觸發反爬蟲措施,算繞過、破解了嗎?

如果你覺得機器操作的算,那請問我找一群人手動打開瀏覽器進行同樣的操作算嗎?

然後肯定還會有人說:「這根本不算破解反爬蟲措施,破解是把驗證碼自動輸入了才算」(同樣有人這麼跟我說過)。

那麼請問,人工輸入驗證碼算破解嗎?找一群人人工輸入驗證碼呢?


然後我們再來回顧一下那個頭條的案件吧,那個案件一開始是各種新聞、文章都說是」 使用偽造device_id繞過伺服器的身份校驗,使用偽造UA及IP繞過伺服器的訪問頻率限制 」。

但從後來被爆出來的消息來看,說白了只是因為那人從頭條離職了之後,不僅做了個競品還爬老東家的數據直接放到自己那用而已,他的「tt_spider」所用到的那些操作並不是導致他被告的關鍵因素。

怎麼避免違法

以下內容寫於2019年10月17日,是根據本人對目前見到的知名案例的理解而寫的,僅供參考,如有疑問建議聯繫律師協助你對具體情況進行分析。

個人隱私資訊不要碰

很明顯,今年的凈網行動中,被一窩端的那些公司大部分都是做徵信、風控、簡歷檢索相關的,它們有個共同的特點,就是都採集了個人隱私資訊並對外售賣。

做徵信和風控的基本都是對社保、公積金、賬單等資訊進行了採集,它們的做法也都很類似:讓用戶在自己的APP中登錄各種帳號,從而獲取到登錄Cookie,接著就能使用Cookie隨心所欲地監控用戶的情況。

做簡歷檢索的則是在各種招聘平台上註冊了大量虛假企業帳號,並通過招聘平台提供的功能獲取了大量簡歷,有些做這方面的甚至還會有用虛假招聘的方式騙簡歷的操作,極其惡劣。

再次提醒,個人隱私資訊千萬不要碰!大部分公司根本沒有那個權力去碰這些數據,一碰既死!

別人的東西不要拿了之後放到自己家裡

在早些時候, 百度與大眾點評不正當競爭糾紛案(上海市第一中級人民法院(2016)滬73民終242號)也挺火的,從案件內容中可以看到,百度採集了大眾點評等APP上的店鋪和評論資訊,並直接在百度地圖上進行展示。

這個案件大家應該都能理解得了吧?很簡單的一個事情,我沒有允許你拿走這個東西,但你直接拿走了,還放在了自己家裡炫耀,這當然不行!

同理,所有不通過官方渠道(開放平台等)爬了其他網站的數據之後直接放到自己網站上的,都有風險,包括但不限於:

•爬了影片、音樂網站後把影片、音樂直接搬到自己網站上,為用戶提供播放服務的。•爬了小說網站後把小說文本直接搬到自己網站上,為用戶提供盜版閱讀服務的。•爬了論壇網站後把所有貼子直接搬到自己網站上,改個名字假裝自己是另一個論壇的。

不過,這方面除了盜版問題以外,大部分情況其實沒人管,只要你不過分、不出名,搞個小破站出來其實人家也懶得搞你,容易出問題的是有些專門做此類事情的公司。

再次提醒,如果你正在某個公司做這種事情,建議儘早棄坑!

請求速度不要太過分

很多小白寫爬蟲的時候,並發毫無限制(可參考攜程反爬虫部門某位老哥寫的文章),這種做法實際上是會對對方伺服器造成一定影響的,在數據量較大的情況下,如果對方的頻寬很小,很有可能就會被你的高並發請求直接弄掛,這就相當於CC攻擊了。

CC攻擊是Dos攻擊的一種,主要表現是對目標網站發起大量的HTTP請求,使其伺服器性能被消耗殆盡,從而達到讓對方伺服器拒絕服務的效果。 Dos攻擊就是讓對方伺服器拒絕服務的攻擊的總稱,而我們常聽說的DDoS攻擊其實是分散式拒絕服務攻擊的意思,只是在Dos的基礎上加了個分散式而已。

所以,千萬注意控制自己的請求速度,控制在一個合理的範圍內,如果你司老闆或產品經理給你提了一個像「一天採集一遍淘寶全站」一樣的這種需求,建議你直接懟回去。

這個請求速度,一方面你們這邊的成本會非常高,另一方面,你們的法律風險極大,被爬的那一方完全可以以你們的爬蟲對他們伺服器的資源消耗過高為由(可參考某數據管理辦法意見稿),直接將你們告上法庭,至於最後怎麼判,完全看你們爬了數據做什麼用。

不要碰黑色產業

這方面被抓的個人很多,基本都是接了個外包,然後對方是做黑產的,接外包的這位也不知道或者根本沒去了解對方要他做的這個工具是用來幹啥的,稀里糊塗地就被抓了。

舉兩個例子吧:

1.有人找你說做一個直播平台的登錄、進直播間、刷彈幕、刷免費禮物一條龍服務的程式,但他們實際上是用來造假數據的,這個情況下,如果他們出事被抓了(刷量屬於黑色產業,大概率出事),你就是從犯。2.之前知乎上有個很火的「接外包接進監獄的」回答,那個回答現在已經被刪除了,但從內容上來看,與之前被抓的知名打碼平台站長——微涼的情況很像,都是做了個驗證碼識別服務,都是給別人使用了,最後莫名其妙就被抓了。按回答中所說的,被抓的那個公司多半是做了上面那個例子中的事情,而且量非常大,而他提供了打碼服務,所以就被連帶上了。

所以,如果感覺自己在做的事情不對勁,千萬要搞清楚,如果有問題,趕緊棄坑!

接外包的時候,建議在可以保留聊天記錄的IM上與對方詳細了解一下對方會用這個程式做什麼,有問題的千萬別接!

不要碰黃賭毒

這個其實就不怎麼跟爬蟲有關了,因為目前我看到的案例都是說接外包做了個菠菜網站,最後被連帶一起抓了的,但與上一條一樣,建議搞清楚自己做的東西會被用來幹什麼,並保留好聊天記錄,涉及黃賭毒的千萬別接!

不要對別人的軟體進行逆向工程後還到處得瑟

很多人以為寫對某個網站/APP的逆向文章是沒有風險、可以隨便寫的,但實際情況只是人家懶得弄你而已,因為幾乎所有的網站、APP的用戶協議中,都會有類似這樣的條款:

「在使用過程中,您將承擔因下述行為而產生的全部法律責任:未經本公司授權,修改、破解、反編譯、反彙編、逆向工程本產品,發布本產品的修改版、破解版等。」

有些遊戲類的APP甚至還會有這樣的條款:

「嚴禁修改、破譯或進行任何影響遊戲程式和遊戲網路數據傳輸封包的行為。」

簡單地說就是,只要你對他們的網站、APP進行了逆向,甚至是抓包,他們就有理由告你。

當然,這就跟遵守robots協議一樣扯淡,現在做垂直爬蟲的基本沒有不逆向、不抓包的,而目前見到的案例也就只是對方要求刪文而已,還沒到抓人的程度。

但是,如果某篇文章的傳播面過廣,對對方造成的一定的損失,而且對方想要搞你的話,那你就涼涼了。


說到這裡,我還是再次說明一下我們夜幕團隊的做法吧,我們的文章中不會出現直接逆向、破解某個第三方網站、APP的內容。

我們只會自己造一個案例,再對這個案例進行逆向,這樣做既安全又不會因為對方更新而失效,真正做到授人以漁的作用。

不要影響別人的正常業務

這個應該很好理解吧?搶票、刷單、薅羊毛之類的其實都是屬於這一類的,只要你的操作量大了,就會影響到別人的正常業務,而且還很有可能會涉及到其他的利益關係,你說這情況不抓你抓誰?

非公開數據不要亂搞

這個也很簡單,別人用來商業化的數據(如天眼查、企查查、啟信寶等工商資訊查詢網站),你通過公開手段爬了之後拿去用,人家當然要告你。

並非指上面說的三家,指的是其它領域的東西,工商數據這一塊目前還沒看到相關案例。

總結

好了,差不多應該就是這些,這篇文章是想到啥就說啥了,對於一些細節方面的問題建議自行判斷,判斷不了的建議聯繫律師幫你分析,不要不知道什麼情況還往裡沖,這樣子進監獄是遲早的事情。

再引用一下之前轉載張凱強的《又一家數據公司被查,爬蟲到底做錯了什麼?》這篇文章時,我提到的一個判斷方法:

有個很簡單的方法能判斷出一件事情是否有違法風險,如果你不知道做某件事情會不會違法,但你覺得做這件事情似乎不太好,那麼這件事情做完以後多半會出事!

最後說一下,技術無罪,但人的做法有罪,最核心的點是你做的事情合不合理、合不合法,希望各位讀者能潔身自好,敬畏法律、敬畏人性。