每個人在學習爬蟲或者寫爬蟲的時候有的為了工作,有的可能只是自我的愛好。但不管咋樣,從法律和倫理上來說這是不應許的,畢竟一個很淺顯的道理,你的東西被別人不經允許就拿走,這換成誰都是接受不了的。
所以今天特意告訴小白們,在爬取網站數據的時候是要得到網站所有者允許的,為了學習的話看到網站有廣告都給別人點就下,畢竟就一個點擊量也沒多少錢,幫助別人也是幫自己。
可能在抓取的時候我們不太明白專利侵權這些範圍怎麼去界定。
專利只是用來聲明發明的所有權。圖片、文字和任何信息本身不能獲得專利權。雖然有些專利(比如軟體專利)並不像我們通常理解的「發明創造」那樣是有形的,但是要注意,獲得專利權的是這些無形的東西(技術),而不是專利報告中的內容。除非你利用抓取來的設計圖構建什麼,或者有人為某種網頁抓取方法獲得了專利保護,否則你不太可能在網頁抓取時侵犯他人的專利權。
其次是商標,雖然商標也不太可能成為問題,但還是需要注意的。中國專利商標局對商標的定義如下:
商標:
用來標識和區分一種商品的來源。服務標識(service mark)是一個單詞、詞組、符號和 / 或設計,用來標識和區分一種服務而非商品的來源。術語「商標」通常既可表示商標,也可表示服務標識。
除了當我們提到商標時通常會想到的傳統的單詞 / 符號商標,其他的描述性特徵也可以作為商標。比如,容器的外形(可口可樂的瓶子),或者一種顏色。
和專利不同,商標的所有權很大程度上由使用場景決定。比如,如果我想在博客裡發一篇帶可口可樂圖標的文章,我完全可以這樣做(只要我沒有暗示我的博文是可口可樂贊助或發布的就行)。但是,如果我想製造一種新的軟飲料,在外包裝上使用可口可樂的圖標,那明顯就是侵犯了可口可樂的商標權。同樣道理,雖然我可以把飲料外包裝塗成 Pink Panther 的粉色,但是我不能用同樣的顏色發行一款新的家用隔熱層產品。
版權法
商標和專利有一個共同點,就是它們必須正式註冊才能得到認可。與一般認識不同的是,受版權保護的材料並不需要註冊。究竟是什麼使得圖像、文字、音樂等擁有版權呢?並不是說在網頁下面加上「保留所有權利」(All Rights Reserved)就擁有了版權,也不是說「出版發行的」就擁有版權,而「未出版發行的」就沒有。任何材料,只要你創作出來,它就會自動受到版權法的保護。
《保護文學和藝術作品伯爾尼公約》是 1886 年由瑞士政府在伯爾尼首次公布的版權國際標準。這個公約的基本含義是所有成員國都必須像對待自己國家公民的作品一樣,對其他成員國公民的作品進行版權保護。其實,這就是說作為一個美國公民,如果你涉嫌抄襲一個法國公民的作品,也要承擔法律責任(反之亦然)。
顯然,版權是網絡爬蟲需要關注的內容。如果抓取別人的博客內容然後放到自己的博客上,就可能會惹上官司。不過,有幾層保護,可以根據博客抓取項目的實際影響,幫自己進行辯護。
首先,版權保護只涉及有創造性的作品,而不涉及統計數據或事實。好在許多網絡爬蟲抓取的都是事實和統計數據。雖然用一個網絡爬蟲從網絡上收集詩歌,然後顯示在你自己的網站上有可能是違反版權法的,但是如果它收集不同時間段發表的詩歌數量就不違法了。詩歌是一種創造性作品,但是按月對網站上發表的詩歌進行字數統計就沒什麼創造性了。
如果數據是公司發布的價格、高管的姓名或者其他事實性的信息,那麼即使完全照搬(不是根據抓取的原始數據進行整合或計算)也不會違反版權法。但是,有兩點與網頁抓取相關:
根據「安全港」保護原則,如果你從一個你有理由相信只包含無版權材料的數據源抓取數據,但是有人曾向該數據源提交過有版權的材料,那麼只要你在收到通知後把有版權的材料刪除,就可以免責。
你不能為了收集信息而故意繞開安全措施,比如密碼保護。
總之,未經作者或版權所有者授權,你不可以直接發表有版權的材料。如果你以數據分析為目的,把可以自由訪問的有版權的材料保存在自己的非公開資料庫中,這是合法行為。如果你把數據展示到網站上供人們瀏覽或下載,就不算合法了。如果你分析資料庫裡的數據,然後發布作品的字數統計信息、按作品數量對作者排序,或發布其他的數據分析結果,這是合法行為。如果你還引用了一些原文或簡單的樣本數據來闡述自己的觀點,也是可以的,但是使用之前最好看看國家網絡爬蟲的網絡規則。
侵害動產:
侵害動產與我們常識中的「違法」有著本質的區別,動產的範圍不包括不動產和土地,而是指那些可移動的財產(比如伺服器)。如果接入那些不允許你接入或使用的財產,就會侵害動產。
在雲計算時代,人們可能不把 Web 伺服器看作一種真實有形的資源。但其實伺服器不僅由許多昂貴的組件構成,而且它們還需要空間存放、監控、製冷,以及大量的電力供應。據估計,全球 10% 的電力都是由計算機消耗的。1(如果你自己的電費構成並非如此,可以考慮一下 Google 龐大的伺服器農場,每一座農場都需要與大型電站連接。)
雖然伺服器是很昂貴的資源,但是從法律的角度看,一個非常有趣的現象是,網站管理員非常希望人們使用他們的資源(即接入他們的網站),但同時又不希望資源被過快地消耗掉。通過瀏覽器看一下網站可以,但是發動大規模的 DDoS 攻擊顯然就不允許了。
只有滿足下列 3 個條件,網絡爬蟲的行為才構成侵害動產:
缺少許可
由於 Web 伺服器對所有人開放,所以它們一般也會向網絡爬蟲「提供許可」。但是,很多網站的服務協議條款都明確地禁止使用爬蟲。另外,任何勒令停止通知函顯然撤銷了這類許可。
造成實際的損害
伺服器是很昂貴的。除了伺服器成本,如果你的爬蟲把網站拖垮了,或者限制了網站為其他用戶提供服務的能力,這些都算是你對網站造成的「損害」。
故意而為
這個,你懂的!
只有 3 個條件都滿足才算是侵害動產。然而,如果你違反了服務協議,但並未造成實際的損害,不要以為你就不算違法。可能你的行為已經違法了版權法,或者其他可以處理網絡爬蟲犯罪行為的法律。
請限制你的爬蟲
過去,Web 伺服器比個人電腦要強大得多。其實,「伺服器」的部分定義就是指「大型計算機」。而現在情況似乎反過來了。比如,我的個人電腦擁有一個 3.5GHz 處理器和 8G 內存。Alibaba的一個中等雲計算實例卻只有 3GHz 處理器和 4G 內存。
如果網速正常,還有一臺可以持續抓取的專用設備,即使是一臺個人電腦也可以給許多網站造成沉重負擔,甚至可以對網站造成嚴重損害或者直接把網站拖垮。除非出現了緊急醫療事故,而唯一的援救方法是在兩秒內收集網站上所有的搞笑視頻,否則真的沒有理由去損害別人的網站。
一直被盯著看的機器人是永遠不會完成任務的(抓取總是需要很長時間)。有時候最好讓爬蟲在午夜運行,而不是在下午或者傍晚運行,原因如下。
如果你有大約 8 個小時的時間,即使抓取一頁需要 2 秒,你也可以抓取 14 000 多個頁面。當時間不怎麼緊張的時候,沒必要加快爬蟲的抓取速度。
假如網站的目標訪客和你在同一時區(如果不在同一時區,可以相應地調整時間),那麼夜間網站流量可能會少很多,這就意味著你的抓取行為不會影響網站高峰期的運行了。
你可以在爬蟲抓取網站的時候睡覺,不必為了看到新信息而不斷地翻日誌。想想看,第二天早上睡醒的時候嶄新的數據就擺在面前,得有多麼愜意啊!
再想像一下下面 3 種場景:
你有一個網絡爬蟲遍歷了網站,收集了一些或全部的數據;
你有一個網絡爬蟲遍歷了幾百個小網站,收集了一些或全部的數據;
你有一個網絡爬蟲遍歷了一個超大型網站,比如百度。
在第一個場景中,最好讓爬蟲在深夜慢慢地運行。
在第二個場景中,最好以循環的方式快速地抓取每個網站,而不是一次一個慢慢地抓取。根據你要抓取的網站數量進行合理安排,你就可以以最快的快速(取決於網絡連接和機器)收集數據,而且對每個遠程伺服器造成的負載也比較合理。為實現這種循環抓取方式,你可以採用多線程(每個線程抓取一個網站,可以暫停),也可以用 Python 列表來跟蹤網站。
在第三個場景中,可能你的網絡連接和個人電腦對百度這樣的超大型網站造成的負載不會引起對方的注意。但是,如果你用分布式網絡設備抓取,顯然就不是一回事兒了。請謹慎使用分布式網絡設備,最好問問對方允不允許這麼做。