寫(xiě)了篇爬蟲(chóng)文章,收到份律師函?
回復(fù)“書(shū)籍”即可獲贈(zèng)Python從入門(mén)到進(jìn)階共10本電子書(shū)
大家好,我是早起。
從寫(xiě)公眾號(hào)開(kāi)始,不論是私信還是交流群,常常都會(huì)有粉絲會(huì)問(wèn)出類似下面的問(wèn)題
xx網(wǎng)站能不能爬? 爬xx數(shù)據(jù)有沒(méi)有風(fēng)險(xiǎn)?
其實(shí)我并不是爬蟲(chóng)從業(yè)人員,充其量算爬蟲(chóng)愛(ài)好者,去年也轉(zhuǎn)載過(guò)一篇相對(duì)理性的文章請(qǐng)不要污名化爬蟲(chóng)!,今年初還因?yàn)樵诠娞?hào)分享某網(wǎng)站的反爬破解收到了律師函,算是在作死的邊緣徘徊了一波
今天就簡(jiǎn)單聊一下爬蟲(chóng)那些事兒。
當(dāng)我們談?wù)撆老x(chóng)
在這里,其實(shí)我想吐槽一下,對(duì)于大多數(shù)非爬蟲(chóng)從業(yè)者或者說(shuō)大部分 Python 愛(ài)好者來(lái)說(shuō),我們寫(xiě)的“爬蟲(chóng)”和大家談?wù)摰呐老x(chóng)并不是一個(gè)東西。
因?yàn)榛旧弦簿?code style="padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(255, 100, 65);font-size: 13px;">requests.get或者selenium折騰幾下,就算你加個(gè)請(qǐng)求頭、cookies什么的拿到數(shù)據(jù),對(duì)方網(wǎng)站也有n種方式識(shí)別出來(lái)你(別去送死了,以為用Selenium爬蟲(chóng)網(wǎng)站就檢測(cè)不到?),同時(shí)也不會(huì)涉及復(fù)雜的反爬、逆向、驗(yàn)證碼處理、分布式、爬蟲(chóng)調(diào)度等技術(shù),這樣的程序在我看來(lái)根本算不上爬蟲(chóng),頂多算是頻率高點(diǎn)的模擬請(qǐng)求。
所以保持對(duì)爬蟲(chóng)的敬畏之心是好的,但requests或者selenium搗鼓兩下,返回了一點(diǎn)數(shù)據(jù)分析一下,這樣的程序和我要討論的不是同一個(gè)爬蟲(chóng),你隨意折騰,一般情況下對(duì)方網(wǎng)站懶得理你,也不會(huì)有什么法律風(fēng)險(xiǎn),但也要注意以下幾點(diǎn)。
robots協(xié)議
其次要說(shuō)的就是robots協(xié)議,相信如果對(duì)爬蟲(chóng)有進(jìn)一步研究的讀者都會(huì)知道,每個(gè)網(wǎng)站都有robots協(xié)議這么個(gè)玩意,且有些非技術(shù)類自媒體常說(shuō)一定要遵守robots協(xié)議之類的文字!
但正如本文開(kāi)頭提到的文章所說(shuō),這個(gè)協(xié)議是一個(gè)君子協(xié)議,換句話說(shuō)不論這個(gè)網(wǎng)站實(shí)際上是否允許你爬,在robots協(xié)議上都會(huì)限制你爬!
拿很多教程用來(lái)講解Python爬蟲(chóng)入門(mén)的 「豆瓣250」 來(lái)說(shuō),查看豆瓣的robots協(xié)議如下
可以看到也是禁止了所有的請(qǐng)求頭User-agent: *以及大部分路徑下的頁(yè)面,其中就包括搜索電影信息的Disallow: /search,如果完全遵循該協(xié)議,基本什么都玩不了。
其實(shí)不僅是robots協(xié)議,大部分網(wǎng)站基本上都會(huì)在用戶服務(wù)協(xié)議上限制你使用任何爬蟲(chóng),例如養(yǎng)活了很多技術(shù)博主的某團(tuán)和某點(diǎn)評(píng),在服務(wù)條款上就給出了明確的說(shuō)明

但之所以基本見(jiàn)不到類似的案件主要就像前文所述,大部分人的爬蟲(chóng)程序都是小打小鬧,人家懶得理你,但要知道對(duì)方是保留了起訴你的權(quán)利。
所以對(duì)于robots協(xié)議,我們應(yīng)該是帶著尊重進(jìn)行謹(jǐn)慎合理的數(shù)據(jù)爬取。
數(shù)據(jù)
為什么說(shuō)「涉及數(shù)據(jù)要小心」?因?yàn)榇蟛糠峙老x(chóng)把自己爬進(jìn)去了的案例都是在數(shù)據(jù)上翻車,不是用來(lái)盈利就是涉及隱私數(shù)據(jù)。
1. 別拿來(lái)搞錢(qián)
首先要申明的也是最重要的一點(diǎn) 「你爬人家數(shù)據(jù)想干嘛」,爬點(diǎn)公開(kāi)數(shù)據(jù)自己玩一下基本是沒(méi)有問(wèn)題的,但若你把人家數(shù)據(jù)爬下來(lái)出售/盈利是絕對(duì)不行的。
打個(gè)比方說(shuō)你爬美團(tuán)數(shù)據(jù)做了個(gè)丑團(tuán)來(lái)競(jìng)爭(zhēng),爬大眾點(diǎn)評(píng)數(shù)據(jù)做個(gè)了付費(fèi)的小眾點(diǎn)評(píng)來(lái)出售等這都是不可以的,換句話說(shuō)這和爬蟲(chóng)程序本身沒(méi)關(guān)系,而是你非法使用對(duì)方的數(shù)據(jù),目前因?yàn)榕老x(chóng)喜提牢飯的案件也或多或少和盈利性活動(dòng)有關(guān)
所以要明白就算你爬下來(lái)到本地的數(shù)據(jù)也是別人的,千萬(wàn)不要用于任何盈利活動(dòng)!
2. 隱私數(shù)據(jù)別碰
其次關(guān)于數(shù)據(jù)還有一點(diǎn)需要注意的是,我們都知道公開(kāi)的數(shù)據(jù)大部分可以采集,但如果數(shù)據(jù)涉及到隱私,尤其是公民信息相關(guān)數(shù)據(jù),如第二小節(jié)里面的文章提到的手機(jī)號(hào)、身份證、公積金社保等數(shù)據(jù),千萬(wàn)不要碰。
就算是公開(kāi)的數(shù)據(jù),也盡量不要使用爬蟲(chóng)程序來(lái)大批量、無(wú)限制的獲取,不然小日子會(huì)越來(lái)越有判頭
。至于非公開(kāi)數(shù)據(jù),例如
后臺(tái)數(shù)據(jù) 需要一定權(quán)限才能獲得的數(shù)據(jù) 付費(fèi)后才能獲得的數(shù)據(jù)
這類明面上都不讓你拿的數(shù)據(jù),更別說(shuō)用爬蟲(chóng)手段獲取了。
克制
克制,意思就是當(dāng)對(duì)方網(wǎng)站識(shí)別出來(lái)你的爬蟲(chóng)行為,例如一些非常規(guī)的反爬措施,或者因?yàn)檩^高頻率的請(qǐng)求而ban掉你的ip等情況時(shí),我們就需要有所克制,例如合理的繞過(guò)反爬、降低請(qǐng)求速度等,尤其注意不要對(duì)對(duì)方的正常業(yè)務(wù)造成影響。
并且這個(gè) 「正常業(yè)務(wù)」是否受到影響的解釋權(quán)完全在對(duì)方網(wǎng)站,就算你1秒請(qǐng)求1次,理論上他也能告你影響其正常業(yè)務(wù)開(kāi)展。
其次要克制的就是在成功對(duì)某網(wǎng)站成功進(jìn)行了反爬/逆向等操作后,不要太得瑟,不要指名道姓的說(shuō)出對(duì)方網(wǎng)站,就像我一樣,僅僅發(fā)了篇反爬繞過(guò)講解文章,就光速收到律師函(發(fā)文后第二天),當(dāng)我問(wèn)到「為什么那么多人發(fā),就給我發(fā)律師函」,對(duì)方表示看到你就要處理你
結(jié)果就像前面說(shuō)的,對(duì)方有多種方式來(lái)告你,更別說(shuō)反爬繞過(guò)了,我只能配合刪除相關(guān)文章。
所以在反爬、頻率控制等操作上,一定要克制+謹(jǐn)慎,尤其注意在分享反爬技術(shù)上不要太明目張膽,一個(gè)好的做法是自己復(fù)制一個(gè)類似的案例網(wǎng)站(可惜我不會(huì)),然后就可以為所欲為的進(jìn)行技術(shù)拆解。
補(bǔ)充
需要額外注意的是,如果是基于別人的需求去開(kāi)發(fā)爬蟲(chóng)程序,比如幫別人寫(xiě)個(gè)爬蟲(chóng)程序賺點(diǎn)零花錢(qián)、完成boss的任務(wù)等,就需要明確需求本身是否有侵權(quán)行為,以及需求方基于你的爬蟲(chóng)程序是否用于侵權(quán)活動(dòng)。
例如老板讓你用爬蟲(chóng)爬點(diǎn)某網(wǎng)站公開(kāi)評(píng)論數(shù)據(jù),然后簡(jiǎn)單分析下數(shù)據(jù)寫(xiě)個(gè)報(bào)告,我認(rèn)為這是不會(huì)有太大風(fēng)險(xiǎn)的,而如果是讓你爬取某付費(fèi)數(shù)據(jù)或爬數(shù)據(jù)用于自己公司的商業(yè)行為,那完全可以拒絕并拉黑,員工被老板坑的案例實(shí)在太多了,希望大家在遇到此種情況下可以正確判斷。
小結(jié)
以上僅是從我一個(gè)非爬蟲(chóng)從業(yè)人員角度的一些看法,其實(shí)核心就是爬蟲(chóng)無(wú)罪,大多數(shù)翻車的案例與爬蟲(chóng)本質(zhì)上沒(méi)有太大關(guān)系,在寫(xiě)爬蟲(chóng)程序時(shí)需要保持尊重、謹(jǐn)慎的心態(tài),尊重對(duì)方網(wǎng)站的反爬、數(shù)據(jù),謹(jǐn)慎、合理去寫(xiě)代碼。同時(shí)爬蟲(chóng)的水很深,要學(xué)的知識(shí)很多,絕對(duì)不只是 requests 請(qǐng)求兩下就算爬蟲(chóng),基本上涉及到計(jì)算、編程開(kāi)發(fā)的方方面面,希望大家可以一起學(xué)習(xí)、進(jìn)步。
------------------- End -------------------
往期精彩文章推薦:

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
/今日留言主題/
隨便說(shuō)一兩句吧~~
