爬虫写得好,牢饭吃到饱?
先說一條新聞,一家專注大數(shù)據(jù)的數(shù)據(jù)服務(wù)提供商公司巧達科技,因為大量使用爬蟲訪問其他公司接口獲取數(shù)據(jù),整個公司被抓,最后不光管理者,干活的程序員也被抓了。
很多學(xué)python的同學(xué)都接觸過爬蟲,即便是沒接觸過應(yīng)該也聽過,看到這種新聞你會不會心里也發(fā)虛,擔(dān)心自己哪天因為不小心寫了什么爬蟲鋃鐺入獄?
這么本期視頻,我們就來講一下爬蟲到底違不違法,以免你好好的吃著泡面寫著代碼,第二天就進去跟吳老師一起踩縫紉機。
一、爬蟲是什么
首先,我們要明白爬蟲到底是什么東西。拋開復(fù)雜的定義,爬蟲就是一種自動獲取互聯(lián)網(wǎng)內(nèi)容的程序。簡單來說,爬蟲通過模擬一個人類瀏覽網(wǎng)頁的行為,到各個網(wǎng)站溜達溜達,看看有沒有需要的數(shù)據(jù),有的話就記錄保存下來。
這么看起來,爬蟲就是把人能干的事情給自動化了,高效地獲取互聯(lián)網(wǎng)上的內(nèi)容。
二、爬蟲能做什么
既然是模擬人的行為,那么人能干的事,爬蟲都能干,比如你想下載優(yōu)酷上某個電視劇全集,按照以前的方式,你得一集一集的點進去,然后想辦法解析視頻資源,挨個下載,現(xiàn)在不用了,你只需要一開始編輯好程序,使用的時候輸入一個電視劇名就可以了。爬蟲程序會自動地解析網(wǎng)頁上所有的選項,找到所有劇集的下載方式。
又或者你喜歡某個明星,想大量地獲取一些他的表情包,就可以將爬取的網(wǎng)站設(shè)定為微博、百度圖片等一些有圖的網(wǎng)站,然后等待爬蟲獲取就可以了。
除了個人寫的爬蟲,像百度、谷歌這些搜索公司,依據(jù)的基本技術(shù)也是爬蟲,搜索公司每天放出百萬級別的網(wǎng)絡(luò)爬蟲,爬取各個頁面的資源,寫進自己的數(shù)據(jù)庫,為搜索結(jié)果提供數(shù)據(jù),還可以定期的保存網(wǎng)頁快照供用戶快速查看。
三、為什么要反爬蟲
那不禁要問了,像百度、谷歌這樣的大公司就能安全的用爬蟲?像前面提到的巧達科技,連程序員也會被抓?你會不會有種感覺,大公司有恃無恐,小公司如履薄冰?
那必須要介紹下巧達科技曾經(jīng)的幾個王牌業(yè)務(wù),前面說了,巧達科技獲取網(wǎng)站上的大量數(shù)據(jù),這里的數(shù)據(jù)多是各個招聘網(wǎng)站上的數(shù)據(jù),比如用戶的簡歷等。用來做啥呢,說兩個代表性產(chǎn)品。
第一個,簡歷時光機。
求職者的簡歷,所有的修改記錄,全部被保存下來。
只要你曾經(jīng)修改過簡歷,每一次的修改都會被記錄,比如你曾經(jīng)公開現(xiàn)在不愿意公開的信息,HR都能看到。
類比一下,你想想你十年前在QQ空間發(fā)的“45度角仰望天空,淚流滿面,忘了愛”,十年后還能被大家看到?;蛘呤悄愀澳杏亚芭寻l(fā)的合照,隨時都能被翻出來,你惡不惡心?
第二個,愛伙伴。
多么有愛的名字,聽起來就感覺很溫暖,那么它能干什么呢?
通過爬蟲收集各個招聘網(wǎng)站的數(shù)據(jù),包括用戶投遞簡歷、修改簡歷、簡歷被查看,來決定是否通知用戶的公司HR。
簡單來說,就是員工離職預(yù)警。
你要是修改了簡歷,那說明你可能想跑了,你如果投遞了簡歷,那你就是在跑了,趕緊通知你的老板。
確實是愛伙伴,不過看起來你跟老板不是一伙的。
介紹了這幾個業(yè)務(wù),你覺得這公司被抓冤枉嗎?
爬蟲本身作為一種技術(shù),是沒有好壞的,重要的是如何使用。反爬蟲,反的也是這種惡意爬蟲。
還有些爬蟲,雖然并沒有做出惡心的產(chǎn)品,但對被爬取的網(wǎng)站造成了大量負(fù)載,最出名的就是12306的各種搶票軟件了。
數(shù)年前有一款產(chǎn)品,叫做12306助手,20元可以注冊會員,可以幫你在12306上搶票。
實際上原理也就是使用爬蟲,模擬人點擊搶票的方式。
為了對付這些搶票爬蟲,12306的驗證方式不斷升級,包括喪心病狂的認(rèn)人臉方式。
比如,請找出圖片里的白百何。
對于12306來說,這些爬蟲形成了大量的流量沖擊,正常的用戶請求被淹沒無法處理,就導(dǎo)致你使用正常方式搶不到,必須得用爬蟲,用了還不行還得買流量包。
明明是鐵路公司提供的運輸服務(wù),一部分互聯(lián)網(wǎng)公司卻能從中漁利。你說12306能不反這些爬蟲嗎?到了最后,他們干脆推出候補購票,你搶吧,你刷吧,反正有票我就先給候補的。
四、我們該如何分清違法和不違法的界限
講到這里,其實大家對爬蟲是否違法可能有了一個模糊的概念。爬蟲本身并不違法,但你用爬蟲做的事情就可能違法了。
那我們該如何分清違法和不違法的界限呢?其實作為普通人,并不需要太擔(dān)心自己寫的爬蟲把自己送進監(jiān)獄,這里給大家介紹幾個注意事項,按照這個規(guī)范來,你就可以放心大膽、自由自在的爬取數(shù)據(jù)了。
第一,不要爬取公民隱私信息。有些網(wǎng)站可能自身安全建設(shè)不足,不小心在某個隱秘的鏈接暴露了自己的用戶數(shù)據(jù),正常情況下你可能看不到這些數(shù)據(jù),但爬蟲本來就喜歡逛這些犄角旮旯。
如果你獲取了公民的身份證、手機號等隱私信息,就有可能觸犯侵犯隱私罪、非法獲取公民個人信息罪。
第二,不要爬取網(wǎng)站不公開的數(shù)據(jù),比如某些政府網(wǎng)站的數(shù)據(jù),某些互聯(lián)網(wǎng)公司的后臺日志,一旦獲取就可能犯罪。
第三,不要對被爬取的網(wǎng)站造成實際影響。大部分網(wǎng)站是歡迎百度、谷歌來爬的,作為一個需要流量的網(wǎng)站,恨不得拿著喇叭大聲吆喝:百度,給老子爬!
不然你在百度上沒數(shù)據(jù),別人搜不到,你的流量就無法保證。
但是,你不能造成影響,你說我爬取了網(wǎng)站數(shù)據(jù)保存下來,好,可以。但是你每秒請求的三十萬次,直接給人家服務(wù)器搞崩潰了,那大概率是可以追你一個破壞計算機信息系統(tǒng)罪的。
第四,盡量遵守robots.txt協(xié)議
robots.txt協(xié)議是爬蟲屆的一個潛規(guī)則協(xié)議,網(wǎng)站聲明自己歡迎哪些爬蟲來爬,自己的哪些鏈接能夠被爬。
bilibili的robots協(xié)議
相當(dāng)于我這是個博物館,我給你說三號展廳能看,你去看吧,四號展廳只能辦了月卡的能看,辦公場所不能看。
當(dāng)然,這個協(xié)議是個君子協(xié)議,并沒有強制的要求,所以許多公司是靈活對待的。
圍繞robots.txt協(xié)議,國內(nèi)兩大互聯(lián)網(wǎng)巨頭百度和360也曾發(fā)生過沖突。
360為了拓展自己的搜索業(yè)務(wù),去爬取百度的數(shù)據(jù),這事兒就有意思,百度爬了別人的數(shù)據(jù),我360再去爬你的數(shù)據(jù)。那百度肯定不能干啊,就在自己的robotx.txt協(xié)議里寫明了“其他爬蟲可以來,你360的爬開”。
哎,robots協(xié)議不是強制協(xié)議,也沒法限制別人真的來爬取,于是360就接著爬,爬完之后就存到自己的快照給用戶搜索。
百度就告360不正當(dāng)競爭,最終結(jié)果360違反《反不正當(dāng)競爭法》判賠百度70萬。
但這件事沒完,360馬上告百度濫用協(xié)議,搞排斥競爭者的惡意競爭。
結(jié)果360也勝訴了,百度被判賠20萬。
所以說,很多時候爬蟲做的事情都是在違法與不違法的邊緣反復(fù)橫跳,但只要你完全遵守上面幾條規(guī)則,那作為個人開發(fā)者就還是安全的。
總結(jié)
以上是生活随笔為你收集整理的爬虫写得好,牢饭吃到饱?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kali断网攻击
- 下一篇: Rust:Trait 详解