有沒有想過一次性比較多個網站的價格?或者是自動從你最喜歡的部落格中提取一組文章?這一切都可以通過網路爬取實現。
網路爬取指的是使用軟體從網站上提取內容和資料的過程。例如,大多數價格比較服務使用網路爬蟲從幾個線上商店讀取價格資訊。另一個例子是谷歌,它經常爬取或 “抓取 “網路,以索引網站。
當然,這些只是許多網路爬取使用案例中的兩個。在這篇文章中,我們將深入瞭解網路爬取者的世界,學習他們如何工作,並看看一些網站如何試圖阻止他們。
什麼是網路抓取?
網路抓取是用於自動提取–或 “爬取”–網路上的資料的一系列做法。
網路爬取使用軟體從網站上收集資料
網路抓取的其他術語包括 “內容爬取“或 “資料抓取”。不管它被稱為什麼,網路抓取是一種極其有用的線上資料收集工具。網路抓取的應用包括市場研究、價格比較、內容監控等等。
但是,網路抓取究竟 “爬取”什麼–以及它是如何做到的?它甚至合法嗎?難道一個網站不希望有人來抓取他們的資料嗎?
答案取決於幾個因素。然而,在我們深入研究方法和使用案例之前,讓我們仔細看看什麼是網路抓取,以及它是否符合道德。
我們可以從網路上 “抓取”出什麼?
抓取所有種類的網路資料是可能的。從搜尋引擎和RSS訂閱到政府資訊,大多數網站都向抓取者、爬蟲和其他形式的自動資料收集提供他們的公開資料。
以下是一些常見的例子。
你可以從網上爬取的資料型別
然而,這並不意味著這些資料總是可用的。根據網站的情況,你可能需要採用一些工具和技巧來獲得你所需要的東西–假設這些資料首先是可以訪問的。例如,許多網路抓取器不能從視覺內容中提取有意義的資料。
在最簡單的情況下,網路抓取可以通過網站的API或應用程式設計介面來完成。 當一個網站提供其API時,網路開發者可以利用它以方便的格式自動提取資料和其他有用的資訊。這幾乎就像網站主人為你提供了你自己的 “管道”,讓你進入他們的資料。說到熱情好客!
當然,情況並不總是這樣–許多你想抓取的網站不會有你可以使用的API。此外,即使有API的網站也不一定會以正確的格式向你提供資料。
因此,只有當你想要的網路資料不能以你需要的形式提供時,網路抓取才是必要的。無論這意味著你想要的格式不可用,還是網站根本沒有提供完整的資料範圍,網路抓取使你有可能得到你想要的東西。
雖然這很好,但它也提出了一個重要問題。如果某些網路資料受到限制,那麼刮取這些資料是否合法?正如我們很快就會看到的,這可能是一個有點灰色的區域。
網路抓取是否合法?
對於一些人來說,網路抓取的想法幾乎可以說是偷竊。畢竟,你是誰,可以隨便 “拿 “別人的資料?
值得慶幸的是,網路抓取本身並不違法。當一個網站釋出資料時,它通常是向公眾開放的,因此,可以自由地刮取。
例如,由於亞馬遜向公眾提供產品價格,刮取價格資料是完全合法的。許多流行的購物應用程式和瀏覽器擴充套件程式正是出於這一目的而使用網路抓取,所以使用者知道他們得到的是正確的價格。
然而,並非所有的網路資料都是為公眾服務的,這意味著並非所有的網路資料都是合法的,可以抓取。當涉及到個人資料和智慧財產權時,網路抓取可能很快變成惡意網路抓取,導致諸如DMCA移除通知等處罰。
什麼是惡意的網路抓取?
惡意網路抓取是指網路抓取釋出者無意或不同意分享的資料。雖然這些資料通常是個人資料或智慧財產權,但惡意抓取可以適用於任何不屬於公眾的東西。
正如你可能想象的那樣,這個定義有一個灰色區域。雖然許多型別的個人資料受到法律的保護,如《通用資料保護條例》(GDPR)和《加州消費者隱私法》(CCPA),但其他的則沒有。但這並不意味著在某些情況下,這些資料的抓取是不合法的。
CCPA對處理個人資料保持嚴格的標準
例如,假設一個虛擬主機 “意外地 “將其使用者資訊提供給公眾。這可能包括一份完整的姓名、電子郵件和其他資訊清單,這些資訊在技術上是公開的,但也許並不打算分享。
雖然從技術上來說,抓取這些資料也是合法的,但這可能不是最好的主意。資料是公開的,但不一定意味著網路主機已經同意它被抓取,即使它缺乏監督已經使它公開。
這種 “灰色地帶 “使網路抓取在某種程度上具有混合的聲譽。雖然網路抓取絕對是合法的,但它很容易被用於惡意或不道德的目的。因此,許多虛擬主機不喜歡他們的資料被抓取–不管它是否合法。
另一種惡意的網路抓取是 “過度抓取”,即抓取者在一定時期內傳送過多的請求。太多的請求會給網路主機帶來巨大的壓力,他們更願意把伺服器資源花在真正的人身上,而不是抓取機器人。
作為一般規則,少用網路抓取,只有在你完全確定資料是用於公共用途時才使用。記住,僅僅因為資料是公開的,並不意味著抓取它是合法或道德的。
網路抓取的用途是什麼?
在其最好的情況下,網路抓取在許多行業都有許多有用的用途。截至2021年,幾乎一半的網路抓取都是用於支援電子商務戰略。
從電子商務到房地產,網路抓取在每個行業都有應用(來源:Datahut)
網路抓取已經成為許多資料驅動過程的支柱,從跟蹤品牌和提供最新的價格比較到進行有價值的市場研究。以下是一些最常見的情況。
市場研究
你的客戶在做什麼?你的線索呢?你的競爭對手的定價與你相比如何?你是否有資訊來建立一個成功的內向型營銷或內容營銷活動?
這些只是構成市場研究基石的幾個問題,而這些問題也正是可以通過網路抓取來回答的。由於這些資料大部分都是公開的,網路抓取已經成為營銷團隊的一個寶貴工具,他們希望在不需要進行耗時的人工研究的情況下關注他們的市場情況。
業務自動化
網路抓取用於市場研究的許多好處也適用於商業自動化。
在許多業務自動化任務需要收集和壓縮大量資料的情況下,網路抓取是非常有價值的–尤其是在這樣做會很麻煩的情況下。
例如,假設你需要從十個不同的網站收集資料。即使你從每個網站收集相同型別的資料,每個網站可能需要不同的提取方法。與其在每個網站上手動進行不同的內部流程,你可能會使用網路刮刀來自動完成。
線索生成
如果市場研究和業務自動化還不夠,網路抓取還可以不費吹灰之力產生有價值的領導名單。
儘管你需要精確地設定你的目標,但你可以使用網路抓取來產生足夠的使用者資料,以建立結構化的潛在客戶名單。當然,結果可能會有所不同,但這比你自己建立線索名單更方便(也更有希望)。
價格跟蹤
提取價格–也被稱為價格抓取–是網路抓取的最常見應用之一。
這裡有一個來自流行的亞馬遜價格追蹤應用Camelcamelcamel的例子。該應用定期抓取產品價格,然後在圖表上比較它們隨時間的變化。
在Camelcamelcamel價格跟蹤應用程式中顯示的亞馬遜價格歷史
價格可能會出現劇烈波動,甚至是每天都在波動(看看5月9日前後的價格突然下降!)。通過訪問歷史價格趨勢,使用者可以檢查他們所支付的價格是否理想。在這個例子中,使用者可能會選擇等待一週左右,希望能節省10美元。
儘管它很有用,但價格抓取也有一些爭議。由於許多人希望實時更新價格,一些價格跟蹤應用程式通過使某些網站的伺服器請求過載,很快就成為惡意的。
因此,許多電子商務網站已經開始採取額外措施,完全阻止網路抓取者,我們將在下一節介紹。
新聞和內容
沒有什麼比保持瞭解更有價值的了。從監測聲譽到跟蹤行業趨勢,網路抓取是保持資訊的一個寶貴工具。
雖然一些新聞網站和部落格已經提供了RSS提要和其他簡單的介面,但它們並不總是常規的–也不像以前那樣普遍。因此,聚集你需要的確切的新聞和內容往往需要某種形式的網路抓取。
品牌監測
當你在抓取新聞的時候,為什麼不檢查一下你的品牌?對於那些有大量新聞報道的品牌來說,網路抓取是一個非常有價值的工具,它可以讓你保持最新的資訊,而不必翻閱無數的文章和新聞網站。
網路抓取對於檢查一個品牌的產品或服務的最低價格(MAP)也很有用。雖然這在技術上是一種價格抓取的形式,但它是一種關鍵的洞察力,可以幫助品牌確定他們的定價是否符合客戶的期望。
房地產
如果你曾經搜尋過公寓或買過房子,你就知道有多少東西需要分類。由於數以千計的房源分散在多個房地產網站上,要準確找到你要找的東西是很難的。
網路抓取房地產資料
許多網站使用網路抓取,將房地產房源彙總到一個單一的資料庫中,使這一過程更加容易。流行的例子包括Zillow和Trulia,儘管還有許多其他網站遵循類似的模式。
然而,聚合房源並不是網路抓取在房地產領域的唯一用途。例如,房地產商可以使用抓取應用程式來保持對平均租金和銷售價格、正在銷售的房產型別和其他有價值的趨勢的瞭解。
網路抓取是如何工作的?
網路抓取聽起來很複雜,但實際上非常簡單。
雖然方法和工具各不相同,但你所要做的就是找到一種方法,(1)自動瀏覽你的目標網站,(2)在你到達那裡後提取資料。通常情況下,這些步驟是用抓取器和爬蟲來完成的。
抓取器和爬蟲
原則上,網路抓取的工作原理幾乎與馬和犁相同。
爬蟲和抓取器類似於馬和犁
當馬引導犁時,犁會轉動並打破土地,幫助為新的種子讓路,同時將不需要的雜草和作物殘留物重新耕種到土壤中。
除了馬之外,網路刮地也沒有什麼不同。在這裡,爬蟲扮演著馬的角色,引導刮刀–實際上是我們的犁–穿過我們的數字領域。
以下是它們的作用:
- 爬蟲(有時被稱為蜘蛛)是瀏覽網路的基本程式,同時搜尋和索引內容。雖然爬蟲指導網路抓取者,但它們並不專門用於這一目的。例如,谷歌等搜尋引擎使用爬蟲來更新網站的索引和排名。爬蟲通常可以作為預建工具,允許你指定一個給定的網站或搜尋詞。
- 抓取器做的是快速從網站中提取相關資訊的骯髒工作。由於網站是以HTML為結構的,刮削器使用正規表示式(regex)、XPath、CSS選擇器和其他定位器來快速查詢和提取某些內容。例如,你可以給你的網路抓取器一個正規表示式,指定一個品牌名稱或關鍵詞。
如果這聽起來有點讓人不知所措,不要擔心。大多數網路抓取工具包括內建的爬蟲和抓取器,即使是最複雜的工作也能輕鬆完成。
基本的網路抓取過程
在其最基本的層面上,網路抓取可以歸結為幾個簡單的步驟:
- 指定你要抓取的網站和網頁的URLs
- 向URLs發出HTML請求(即 “訪問 “網頁)。
- 使用定位器,如正規表示式,從HTML中提取所需資訊
- 將資料儲存為結構化格式(如CSV或JSON)。
正如我們將在下一節看到的,各種網路抓取工具可以用來自動執行這些步驟。
然而,這並不總是那麼簡單–尤其是在進行大規模的網路抓取時。網路抓取的最大挑戰之一是在網站改變佈局或採取反抓取措施時保持你的抓取器的更新(不是所有東西都能常青)。如果你一次只抓取幾個網站,這還不算太難,但抓取更多的網站就會很快變得麻煩了。
為了儘量減少額外的工作,重要的是要了解網站如何試圖阻止抓取者–這一點我們將在下一節中學習。
網路抓取工具
許多網路抓取功能都是以網路抓取工具的形式出現的。儘管有許多工具可用,但它們在質量、價格和(不幸的)道德方面差別很大。
按使用情況分類的流行網路抓取工具
在任何情況下,一個好的網路抓取工具將能夠可靠地提取你需要的資料,而不會遇到太多的反抓取措施。這裡有一些需要尋找的關鍵特徵。
- 精確的定位器:網路抓取器使用定位器,如正規表示式和CSS選擇器來提取特定資料。你選擇的工具應該允許你有幾個選項來指定你要找的東西。
- 資料質量:大多數網路資料是非結構化的–即使它在人眼裡呈現得很清楚。處理非結構化的資料不僅是混亂的,而且很少有好的結果。一定要尋找能在交付前清理和分類原始資料的刮削工具。
- 資料交付:根據你現有的工具或工作流程,你可能需要以特定的格式(如JSON、XML或CSV)收集資料。與其自己轉換原始資料,不如尋找具有你所需格式的資料交付選項的工具。
- 反刮擦處理:網路抓取只有在其繞過阻止的能力上才是有效的。雖然你可能需要使用額外的工具,如代理和VPN來解禁網站,但許多網路抓取工具通過對其爬蟲進行小的修改來做到這一點。
- 透明的價格:儘管有些網路抓取工具是免費使用的,但更強大的選項是有代價的。密切關注定價方案,特別是如果你打算擴大規模並抓取許多網站。
- 客戶支援:雖然使用預先建立的工具是非常方便的,但你並不總是能夠自己修復問題。因此,要確保你的供應商也提供可靠的客戶支援和故障排除資源。
流行的網路抓取工具包括Octoparse, Import.io和Parsehub.。
保護免受網路抓取
讓我們把情況調轉一下。假設你是一個虛擬主機,但不希望其他人使用所有這些巧妙的方法來刮取你的資料。你能做些什麼來保護自己?
除了基本的安全外掛外,還有一些有效的方法來阻止網路抓取者和爬蟲。
常見的反抓取技術
- 攔截IP地址:許多虛擬主機都會跟蹤其訪問者的IP地址。如果主機注意到一個特定的訪問者產生了許多伺服器請求(例如在一些網路抓取者或機器人的情況下),那麼他們可能會完全封鎖該IP。然而,抓取者可以通過代理或VPN改變他們的IP地址來超越這些封鎖。
- 設定robots.txt:robots.txt檔案讓虛擬主機告訴抓取者、爬蟲和其他機器人什麼可以訪問,什麼不能訪問。例如,一些網站使用robots.txt檔案來保持隱私,告訴搜尋引擎不要索引它們。雖然大多數搜尋引擎尊重這些檔案,但許多惡意形式的網路抓取者並不尊重。
- 過濾請求:每當有人訪問一個網站時,他們就在向網路伺服器 “請求 “一個HTML頁面。這些請求通常對網路主機是可見的,他們可以檢視某些識別因素,如IP地址和使用者代理,如網路瀏覽器。雖然我們已經涵蓋了阻止IP,但網路主機也可以通過使用者代理進行過濾。
例如,如果網路主機注意到許多來自同一使用者的請求,執行的是早已過時的Mozilla Firefox版本,那麼他們可以簡單地阻止該版本,並在這樣做的同時,阻止機器人。這些阻止功能在大多數託管計劃中都有。
- 顯示驗證碼:你是否曾經在訪問一個頁面之前不得不輸入一串奇怪的文字或點選至少六個帆船?那麼你已經遇到了 “驗證碼“或完全自動化的公共圖靈測試,用於區分計算機和人類。雖然它們可能很簡單,但它們在過濾網路抓取者和其他機器人方面卻非常有效。
- Honeypots:“Honeypots”是一種用於吸引和識別不需要的訪問者的陷阱。在網路抓取者的情況下,網路主機可能在他們的網頁上包括隱形的連結。雖然人類使用者不會注意到,但機器人在滾動時將自動訪問這些連結,使虛擬主機能夠收集(並阻止)他們的IP地址或使用者代理。
現在讓我們再把情況轉回來。抓取者可以做什麼來克服這些保護措施?
雖然一些反抓取措施很難被繞過,但有幾種方法往往很有效。這些方法涉及以某種方式改變你的抓取者的識別特徵。
代理可以幫助避免IP禁令和擴大網路抓取工作的規模
- 使用代理或VPN:由於許多網路主機根據其IP地址阻止網路抓取者,通常有必要使用各種IP地址來保證訪問。代理和虛擬私人網路(VPN)是這項任務的理想選擇,儘管它們有一些關鍵的區別。
- 定期訪問你的目標:大多數(如果有的話)網路抓取器會告訴你它們何時被封鎖。因此,重要的是要定期檢查你的抓取地點,看看你是否被封鎖了,或者網站的格式是否已經改變。請注意,在某些時候幾乎可以保證其中之一。
當然,如果你負責任地使用網路抓取,這些措施都不是必要的。如果你決定實施網路抓取,記得要少刮一點,並尊重你的網站主機。
小結
雖然網路抓取是一個強大的工具,但它也對許多虛擬主機構成了強大的威脅。無論你在伺服器的哪一邊,每個人都有既得利益,以確保網路抓取被負責任地使用,當然,是為了做好。
評論留言