使用 Java 保存网站或网页

为什么要将网站保存为 HTML?

为了确保不间断地访问重要内容,保存网站以供离线使用是很有帮助的。将网站转换为 HTML 后,您就可以在没有互联网连接的情况下查看网页,无论是用于研究、教育还是娱乐。保存网页可用于分析、创建备份或学习网页设计和模板。保存网页可以让你灵活控制,并让你安心。

本文提供了使用 Aspose.HTML for Java API 保存网站的方法。您可以自定义保存过程–保存整个网站或保存一个网页。

如何用 Java 保存网页

您可以使用 Aspose.HTML for Java 库 将网页保存为 HTML 格式,以便离线阅读,而不会遇到任何麻烦。您需要采取以下几个步骤:

  1. 使用 HTMLDocument(Url) 构造函数,通过传递要下载的网页的 URL 来创建一个 HTMLDocument 类实例。
  2. 准备保存 HTML 内容的本地文件路径。
  3. 调用 save(savePath)save(savePath, options) 方法将下载的 HTML 文档保存到指定位置。

此 Java 示例演示了如何使用默认保存选项保存网页。默认情况下,只保存特定网页及其来自同一域的相关资源。外部域的资源不会被下载。

1// Extract and save a wab page with default save options in Java
2
3// Initialize an HTML document from a URL
4final HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
5// Prepare a path to save the downloaded file
6String savePath = "root/result.html";
7
8// Save the HTML document to the specified file
9document.save(savePath);

使用本文介绍的功能,您可以保存带有资源的单个页面和整个网站。要自定义保存过程,可以为 HTMLSaveOptions 对象指定资源处理选项。

通过 HTMLSaveOptionsResourceHandlingOptions 类,您可以自定义保存 HTML 文档时如何处理图片、CSS 和 JavaScript 文件等资源。它包括用于设置默认资源处理行为(如保留、忽略或嵌入资源)、控制 JavaScript 处理、指定要保存的链接页面的最大深度以及对页面和资源应用 URL 限制的属性。这些类可对保存过程中如何管理外部内容进行细粒度控制,使您能根据不同需求定制行为,如保存整个网站或检索特定资源。

使用 setJavaScript() 保存网站

JavaScript属性定义了保存网页时如何处理JavaScript脚本。选项包括SaveIgnoreDiscardEmbed,默认值为Save。以下Java示例演示了如何保存网站并将所有要保存的JavaScript嵌入到生成的HTML文档中。

要从 URL 中保存网站,应采取以下几个步骤:

  1. 使用 HTMLDocument(Url) 构造函数从指定的 URL 初始化 HTML 文档。
  2. 创建 HTMLSaveOptions 类的实例,以配置保存文档的方式。
  3. 修改 HTMLSaveOptions 中的 ResourceHandlingOptions 属性,以设置 JavaScript 的处理行为。
  4. 调用 save(savePath, options) 方法按所需设置保存文档。

在下面的示例中,ResourceHandling.Embed(资源处理嵌入)选项指定在保存时将任何 JavaScript 资源直接嵌入 HTML 文档。这意味着 JavaScript 内容将包含在保存的 HTML 文件中,而不是链接到外部的.js文件,从而确保所有必要的脚本都包含在同一文件中,以便离线访问或发布。这种方法无需外部文件引用,有助于在传输或保存时保持网页的完整性。

 1// Download website using HTMLSaveOptions in Java
 2
 3// Initialize an HTML document from a URL
 4final HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
 5
 6// Create an HTMLSaveOptions object and set the JavaScript property
 7HTMLSaveOptions options = new HTMLSaveOptions();
 8options.getResourceHandlingOptions().setJavaScript(ResourceHandling.Embed);
 9
10// Prepare a path to save the downloaded file
11String savePath = "rootAndEmbedJs/result.html";
12
13// Save the HTML document to the specified file
14document.save(savePath, options);

使用 setMaxHandlingDepth() 保存网站

MaxHandlingDepth 属性定义了应加载和处理的 HTML 文档元素层次结构的最大深度。通过限制该深度,该属性有助于优化性能,减少保存过程中所需的内存和处理能力。默认情况下,只有打开的文档及其直接资源会被保存为单独的网页。将此属性设置为 1 可确保只保存 HTML 层次结构中深度为 1 的元素,包括文档本身和直接链接的页面。

 1// Save a website with limited resource depth using Java
 2
 3// Load an HTML document from a URL
 4final HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
 5
 6// Create an HTMLSaveOptions object and set the MaxHandlingDepth property
 7HTMLSaveOptions options = new HTMLSaveOptions();
 8options.getResourceHandlingOptions().setMaxHandlingDepth(1);
 9
10// Prepare a path for downloaded file saving
11String savePath = "rootAndAdjacent/result.html";
12
13// Save the HTML document to the specified file
14document.save(savePath, options);

使用 setPageUrlRestriction() 保存网站

Aspose.HTML for Java 在保存网站时提供了多种过滤页面 URL 的选项。在保存过程中, PageUrlRestriction属性可根据网页的 URL 或域来控制加载哪些网页。默认情况下,该属性设置为 RootAndSubFolders,即只处理根目录及其子文件夹中的网页。您可以根据需要更改此属性,以应用不同的限制。

在下面的示例中,除文档外,还将保存 HTML 文档引用的所有页面以及同一域中的页面:

 1// Save a website with restricted resource URLs using Java
 2
 3// Initialize an HTML document from a URL
 4final HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
 5
 6// Create an HTMLSaveOptions object and set MaxHandlingDepth and PageUrlRestriction properties
 7HTMLSaveOptions options = new HTMLSaveOptions();
 8options.getResourceHandlingOptions().setMaxHandlingDepth(1);
 9options.getResourceHandlingOptions().setPageUrlRestriction(UrlRestriction.SameHost);
10
11// Prepare a path to save the downloaded file
12String savePath = "rootAndManyAdjacent/result.html";
13
14// Save the HTML document to the specified file
15document.save(savePath, options);

Aspose.HTML 提供一套免费的在线 HTML 网络应用程序,包括转换器、合并器、搜索引擎优化工具、HTML 代码生成器、URL 工具等。这些基于浏览器的工具适用于所有操作系统,无需安装任何其他软件。无论你是需要转换或合并文件、提取网页数据、生成 HTML 代码,还是分析网页以进行搜索引擎优化,你都可以在网上完成。利用我们易于使用的 HTML 网络应用程序,随时随地简化您的日常任务,提高您的工作效率。

文本 “HTML 网络应用程序”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.