如何使用 Docker Toolbox 執行 Splash?
簡介
Splash 是一個強大的工具,用於渲染基於 JavaScript 的網站,使其成為網路抓取和資料提取的重要工具。在本教程中,我們將向您展示如何使用 Docker Toolbox 執行 Splash,Docker Toolbox 是 Docker 的一個較舊版本,不再維護,但仍可下載。
先決條件
在開始之前,您需要在您的機器上安裝 Docker Toolbox。Docker Toolbox 是 Docker 的一個版本,旨在在較舊的系統和/或沒有原生虛擬化的系統上執行。它適用於 Windows、macOS 和 Linux。
按照以下步驟執行 Splash
開啟 Docker 快速啟動終端,它將啟動 Docker Toolbox。
執行以下命令從 Docker Hub 拉取最新版本的 Splash Docker 映象:
$ docker pull scrapinghub/splash
此命令將下載最新版本的 Splash Docker 映象到您的機器上。
執行以下命令從 Splash Docker 映象啟動一個新的容器:
$ docker run -p 8050:8050 scrapinghub/splash
此命令將從 Splash Docker 映象啟動一個新的容器,並將其繫結到您機器上的 8050 埠。-p 8050:8050 選項指定容器應繫結到主機上的 8050 埠,這允許您從 Web 瀏覽器訪問 Splash Web 介面。
透過在 Web 瀏覽器中訪問以下 URL 來訪問 Splash Web 介面:
如果您在 Windows 上使用 Docker Toolbox,則需要使用 Docker 虛擬機器的 IP 地址而不是 localhost 來訪問 Splash Web 介面。您可以在 Docker 快速啟動終端中執行以下命令找到 Docker 虛擬機器的 IP 地址:
$ docker-machine ip
例如,如果 Docker 虛擬機器的 IP 地址為 192.168.99.100,您將在 Web 瀏覽器中訪問以下 URL 以訪問 Splash Web 介面:
http://192.168.99.100:8050Docker Desktop 和 Docker Toolbox 之間的區別
下表總結了 Docker Desktop 和 Docker Toolbox 之間的區別:
屬性 |
Docker Desktop |
Docker Toolbox |
---|---|---|
維護狀態 |
當前 |
不再維護 |
支援的作業系統 |
Windows、macOS、Linux |
Windows、macOS |
虛擬化 |
原生 |
Oracle VirtualBox |
效能 |
更快 |
更慢 |
附加功能 |
Kubernetes 支援、自動更新 |
無 |
Splash 的功能
隨著 Splash 容器的執行和 Web 介面的訪問,您現在可以使用 Splash 渲染基於 JavaScript 的網站並從中提取資料。以下是一些您可以使用 Splash 執行的操作示例:
渲染網站 - Splash 允許您像 Web 瀏覽器一樣渲染網站,這在網站內容使用 JavaScript 動態生成的情況下非常有用。您可以使用 Splash 透過向 Splash 伺服器發出請求並指定要渲染的網站的 URL 來檢索網站的完整渲染 HTML。
執行自定義 JavaScript - 除了渲染網站之外,Splash 還允許您在它渲染的網站上執行自定義 JavaScript。這在您需要對網站內容執行其他處理或網站內容不容易透過 DOM 訪問的情況下非常有用。
從網站提取資料 - Splash 包含幾個功能,使從網站提取資料變得容易,包括對 XPath 和 CSS 選擇器的支援。您可以使用 Splash 檢索網站 HTML 中的特定元素,或使用自定義 JavaScript 從網站的 DOM 中提取資料。
無頭瀏覽器 - Splash 可以用作無頭瀏覽器,這意味著它可以在沒有 GUI 的情況下以程式設計方式控制和訪問。這使得將 Splash 整合到自動化工作流程或自定義指令碼中變得很容易。
負載均衡 - Splash 包含內建的負載均衡功能,允許您在多個 Splash 例項之間分配渲染請求。這在您需要擴充套件渲染容量或希望確保渲染服務的可用性時非常有用。
HTTP 快取 - Splash 包含一個 HTTP 快取,允許它儲存和重用以前獲取的資源,這可以提高渲染效能並減少頻寬使用。
自定義中介軟體 - Splash 允許您編寫自定義中介軟體指令碼,可用於修改或增強渲染請求或響應。這在您需要新增自定義功能或修改 Splash 的行為時非常有用。
結論
透過按照這些步驟,您現在應該能夠使用 Docker Toolbox 執行 Splash。您可以瀏覽 Splash Web 介面並嘗試其功能,例如渲染網站和執行自定義 JavaScript。總的來說,Splash 是一個強大的工具,用於渲染基於 JavaScript 的網站並從中提取資料。無論您是將其用於網路抓取、資料提取還是任何其他目的,Splash 都可以幫助您高效有效地完成工作。