使用 Java 保存网站或网页
为什么要将网站保存为 HTML?
为了确保不间断地访问重要内容,保存网站以供离线使用是很有帮助的。将网站转换为 HTML 后,您就可以在没有互联网连接的情况下查看网页,无论是用于研究、教育还是娱乐。保存网页可用于分析、创建备份或学习网页设计和模板。保存网页可以让你灵活控制,并让你安心。
本文提供了使用 Aspose.HTML for Java API 保存网站的方法。您可以自定义保存过程–保存整个网站或保存一个网页。
如何用 Java 保存网页
您可以使用 Aspose.HTML for Java 库 将网页保存为 HTML 格式,以便离线阅读,而不会遇到任何麻烦。您需要采取以下几个步骤:
- 使用
HTMLDocument(
Url) 构造函数,通过传递要下载的网页的 URL 来创建一个HTMLDocument类实例。 - 准备保存 HTML 内容的本地文件路径。
- 调用
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 对象指定资源处理选项。
通过 HTMLSaveOptions 和 ResourceHandlingOptions 类,您可以自定义保存 HTML 文档时如何处理图片、CSS 和 JavaScript 文件等资源。它包括用于设置默认资源处理行为(如保留、忽略或嵌入资源)、控制 JavaScript 处理、指定要保存的链接页面的最大深度以及对页面和资源应用 URL 限制的属性。这些类可对保存过程中如何管理外部内容进行细粒度控制,使您能根据不同需求定制行为,如保存整个网站或检索特定资源。
使用 setJavaScript() 保存网站
JavaScript属性定义了保存网页时如何处理JavaScript脚本。选项包括Save、Ignore、Discard和Embed,默认值为Save。以下Java示例演示了如何保存网站并将所有要保存的JavaScript嵌入到生成的HTML文档中。
要从 URL 中保存网站,应采取以下几个步骤:
- 使用
HTMLDocument(
Url) 构造函数从指定的 URL 初始化 HTML 文档。 - 创建 HTMLSaveOptions 类的实例,以配置保存文档的方式。
- 修改
HTMLSaveOptions中的ResourceHandlingOptions属性,以设置 JavaScript 的处理行为。 - 调用
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 网络应用程序,随时随地简化您的日常任务,提高您的工作效率。
