如何使用 AppleScript 和 HTML DOM 下载图像?

AppleScript 是 macOS 内置的一种功能强大的脚本语言,可让用户自动执行各种应用程序任务。与 HTML DOM 结合使用时,它将成为自动执行网页交互的有用工具。例如,AppleScript 可用于打开 Web 浏览器(如 Safari),而 HTML DOM 可帮助从网页中提取图像 URL,从而让您自动执行下载过程。

批量下载图像的功能非常有用,无论您是收集图像用于研究、存档还是仅仅为项目收集资产。在本指南中,我们将逐步介绍如何使用 AppleScript 和 HTML DOM 自动从网页下载图像。此外,我们将讨论如何使用 AppleScript 查找重复图像并删除较小的图像,从而节省您的时间和空间。

1.如何使用AppleScript和HTML DOM下载图像?

使用 AppleScript 从网页下载图像涉及几个步骤:

步骤 1:在 Safari 中打开网页

首先,您需要打开 Safari 并导航到目标网页。这是使用 AppleScript 完成的,它可以与 Safari 交互并控制其操作。

在 Safari 中打开网页

在此代码片段中:

  • activate :如果 Safari 尚未打开,则将其置于前台。
  • open location :在 Safari 中打开指定的 URL。
  • delay 5 :等待5秒钟以确保页面已完全加载,然后再继续下一步。

步骤 2:使用 HTML DOM 提取图像 URL

网页加载完成后,我们可以使用 JavaScript 从 HTML DOM 中提取图像 URL。 document.images 对象提供对所有 <img> 页面上的元素,我们可以提取它们的 src 属性,其中包含图像的 URL。

使用 html dom 提取图像 URL

这里:

  • document.images :收集所有 <img> 来自页面的元素。
  • .map(img => img.src) :将每幅图像映射到其 src 属性(URL)。
  • do JavaScript :在 Safari 的当前选项卡中执行 JavaScript 代码。

结果将是一个包含所有图像 URL 的字符串,以逗号分隔。

步骤 3:处理图片 URL

JavaScript 返回的图像 URL 将以单个字符串的形式显示,我们可以使用 AppleScript 的 paragraphs 命令。

将 imageUrlsList 设置为 imageUrls 段落

这会将字符串拆分为单独的 URL 列表,从而更容易单独处理每个图像 URL。

步骤 4:下载图像

现在我们有了图片 URL 列表,我们可以使用 curl 命令下载每个图像。 curl 是一个用于与服务器传输数据的命令行工具,非常适合下载图像等文件。

AppleScript 下载图像

在这个部分:

  • mkdir -p :如果不存在,则在桌面上创建一个名为“已下载的图像”的文件夹。
  • curl -O :下载每张图片并将其保存到指定文件夹。

步骤 5:(可选)查找重复图像并删除小图像

如果您想通过移除重复项或删除较小的图片来清理下载的图片,AppleScript 可以提供帮助。要查找重复的图片,您可以在下载后比较图片的文件大小或哈希值。对于小图片,您可以检查图片的尺寸并删除任何低于特定阈值的图片。

删除特定尺寸以下图像的方法如下:

applescript 删除特定尺寸的图像

此脚本:

  • 扫描“已下载的图像”文件夹中的所有文件。
  • 检查文件大小是否小于指定的阈值(例如 100KB)。
  • 删除所有小于该尺寸的图像。

对于重复的图像,您需要一个更复杂的脚本来比较图像的哈希值(例如,MD5 或 SHA)以识别重复项。

2. 使用 AppleScript 和 HTML DOM 下载图像的利与弊

优点 缺点
  • 自动化 :设置完成后,脚本会自动下载图像,节省您的时间和精力。
  • 可定制性 :您可以轻松修改脚本以从特定类型的网站下载图像、过滤掉某些图像或删除重复项。
  • 无需第三方工具 :AppleScript 和 JavaScript 内置于 macOS,因此您无需安装额外的软件或浏览器扩展。
  • 有限的错误处理 :如果图像 URL 有错误或者页面布局发生意外变化,脚本可能会失败。
  • Safari 专属 :此方法适用于 Safari,因此如果需要,您需要调整脚本以适应其他浏览器(例如 Google Chrome)。
  • 学习曲线 :对于不熟悉编程的人来说,编写和调试 AppleScript 和 JavaScript 可能具有挑战性。

3. 最佳批量图片下载器 Mac : Imaget

虽然 AppleScript 和 HTML DOM 是强大的工具,但对于需要下载大量图像或需要更用户友好方法的用户来说,它们可能不是最有效的选择。 Imaget 是 macOS 的绝佳解决方案, Windows 需要批量下载图片的用户。

要下载图像 Mac 使用 Imaget ,该过程简单且用户友好。

步骤 1:点击下面的下载按钮下载 macOS 版本并安装,然后打开 Imaget 从您的应用程序文件夹中。

第 2 步:导航到要从中下载图片的网页(网页、Instagram、Pinterest 等),然后单击“自动滚动”按钮让 Imaget 自动从页面提取可用图像。

mac 自动滚动加载图像

步骤 3:选择首选的图像分辨率和格式,然后设置其他下载选项,例如图像的输出类型和目标文件夹。

mac 自动滚动加载图像

步骤 4:点击 保存全部 按钮开始获取图像,然后 Imaget 将下载您电脑上的选定图片 Mac 几秒钟之内。

mac 用 imaget 保存所有图像

4。结论

使用 AppleScript 和 HTML DOM 从网页下载图片是一种功能强大、可自定义的自动化下载过程解决方案。它可控制图片下载,并可删除重复或小图片,使其成为技术含量更高的用户的有用工具。但是,它需要一些脚本知识,并且可能不是批量图片下载最有效的方法。

对于寻求更简单、更精简解决方案的 macOS 用户来说, Imaget 是强烈推荐的替代方案。它提供了用户友好的界面和强大的功能,无需编写脚本即可批量下载图像。无论您是在处理项目还是只是收集用于个人用途的图像, Imaget 对于 macOS 用户来说是一款出色的工具。