用於 Web 數據提取的 Portia 替代方案
已發表: 2019-07-15Portia 是一個可視化工具,允許用戶在沒有任何編程知識的情況下抓取網站。 它是一項託管服務,但由於視覺刮板的使用減少,它已被取消,今天不再使用。 那麼當 Portia 存在時人們是如何使用它的呢? 要使用 Portia,您需要輸入需要訪問的 URL 模式,然後通過點擊手勢或使用 CSS 或 XPath 在這些網頁中選擇元素。 儘管易於使用,但 Portia 的最大問題如下:
- 與其他開源網絡抓取工具相比,這是一個耗時的控制工具。
- 瀏覽網站很難處理。
- 當您開始爬網時,您需要提及目標頁面,以防止 Portia 訪問不必要的 URL。
- 沒有辦法插入數據庫來保存您抓取的數據點。
可視化網頁抓取工具有哪些優勢?
當您有一次性 Web 抓取需求時,您可以使用可視化 Web 抓取器,但不建議將其用作業務工作流程的一部分。 如果您經營的企業需要從很少的靜態網頁中抓取數據,而且這種情況非常偶然(比如每月一次),您可以讓團隊中的某個人知道必須抓取哪些數據才能理解可視化網絡爬蟲在幾個小時內運行,然後不時提取網絡數據。 可視化網絡爬蟲對於缺乏技術團隊且抓取要求極低的小型企業特別有用。
可視化網絡爬蟲幾乎與單擊網頁上的“檢查元素”並從 HTML 內容中復制粘貼數據的人相同。 相反,當您使用可視網絡抓取工具時,您最終會單擊網頁的一部分,軟件會為您將數據複製到您選擇的位置。

視覺網絡抓取工具在哪些方面存在不足?
但是,當您有一些繁重的工作要做時,視覺刮板就達不到要求了。

您可能需要將抓取一些數據作為業務工作流程的一部分(應該是自動化的)。
數據可能需要從數百或數千頁中抓取,並且可能需要非常頻繁地刷新。
可能需要為特定業務模塊提供抓取數據的實時饋送。 在上述大多數情況下,基於代碼的網絡爬蟲會比視覺爬蟲更方便。
大多數大規模抓取項目發現需要抓取大量類似的網頁以獲取有關不同項目的 Web 數據提取數據。 這些項目的範圍可以從電子預訂網站上的航班信息到電子商務網站上的產品詳細信息。 此類場景應用的邏輯是,您嘗試使用幾個網頁來了解數據在網頁中存儲的模式,並使用代碼不僅可以抓取具有完全相同結構的頁面,甚至可以抓取具有相似結構的頁面. 此外,在抓取網站上所有可用頁面時,可能需要忽略具有特定結構的頁面。 所有這些自定義都不能在視覺刮板上實現,因此不建議使用視覺刮板刮掉太多頁面。
另一方面,由於網站的外觀和感覺每隔幾週或幾個月就會發生變化,因此每次網站的用戶界面發生變化時,您可能都需要訓練您的視覺網絡抓取工具。 另一方面,當使用基於代碼的爬蟲時,通常 UI 更改甚至可能不需要對爬蟲進行任何更改,因為網站在結構上可能仍然保持不變。 即使用戶界面中有一些可能需要更改刮板的更改,更改通常也是最小的,並且根據更改調整刮板非常簡單。
我們還有哪些其他選擇?
Portia 有許多替代品。 世界各地的開發人員和網絡抓取團隊正在使用 Python、R 和 Golang 等語言從網頁中提取網絡數據。 正在開發新的方法來加快這一過程。 例如,借助 Golang 中的並行編程和緩存,使用名為 Colly 的包,您可以使用如下自定義設置:
- 您希望在任何給定時間同時抓取的頁面數。
- 一旦開始從網頁抓取,抓取器應該去的最大深度。 (這意味著,如果您將最大深度設置為 3,它將爬取首頁,轉到其中找到的 URL,對其進行爬取,然後轉到該頁面中找到的 URL,並對其進行爬取,但是現在在第三頁中,如果它找到一個 URL,它將不再繼續)。
- 您可以設置檢查 URL 中存在的單詞 - 也就是說,如果 URL 中存在單詞,則必須抓取該 URL 中的網頁。 或者您可以設置排除項 - 帶有特定單詞的 URL,不應被抓取工具訪問。
這些只是您在自己構建網絡爬蟲時獲得的數百個微小功能中的一些示例。
DaaS 提供商與內部團隊?
大多數缺乏技術團隊的企業,甚至對任何腳本語言沒有基本了解的成員,都應該盡量不要開始建立內部抓取團隊。 這背後的原因很簡單。 您在招募開發人員然後讓他們為您的業務需求構建和維護一個全新的網絡抓取系統所花費的資金將是巨大的。 歸根結底,如果您是一家小公司,並且網絡抓取不是您業務的燃料(也就是說,您的業務不以您從網絡上抓取的數據為中心),那麼構建一個內部團隊。
在這種情況下,簡單的解決方案是 DaaS 提供商,他們會滿足您的要求並以您選擇的格式為您提供數據。 我們 PromptCloud 的團隊非常自豪地將網絡抓取減少到企業和企業的兩步過程。
結論
雖然可視化工具對業務團隊有好處,但我們可以同意網絡抓取不僅僅是一項簡單的業務任務。 這是一項需要高效、快速和完全可定制的任務。 如果您有大量網絡抓取需求或想要更大規模地提取網絡數據,建議使用網絡抓取服務。
如果您不擅長編程或您的要求很複雜,您可以使用像 PromptCloud 這樣的完全託管的服務提供商以自動化的方式獲取乾淨的數據,而無需任何技術麻煩或學習任何工具。
