如何使用 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 都可以帮助您高效有效地完成工作。