如何从网站提取图像

从 HTML 中提取图像的能力对于各种应用(如网络搜刮和内容分析)非常重要。 Aspose.HTML for Java 是一个功能强大的库,它为开发人员提供了一套无缝导航和从 HTML 文档中收集信息的工具,从而简化了这一过程。让我们来探讨如何从 HTML 文档中提取图像。


使用 Java 从 HTML 中提取图像

使用 Aspose.HTML Java 库,您可以轻松创建自己的应用程序,因为我们的 API 提供了一套强大的工具,用于解析和提取 HTML 文档中的信息。如果您想在产品中使用 HTML 数据解析功能,或以编程方式从 HTML 中提取数据,请参阅下面的代码示例。


从网站提取图片的 Java 代码

// Open a document you want to download images from
final HTMLDocument document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");

// Collect all <img> elements
HTMLCollection images = document.getElementsByTagName("img");

// Create a distinct collection of relative image URLs
Iterator<Element> iterator = images.iterator();
java.util.Set<String> urls = new HashSet<>();
for (Element e : images) {
    urls.add(e.getAttribute("src"));
}

// Create absolute image URLs
java.util.List<Url> absUrls = urls.stream()
    .map(src -> new Url(src, document.getBaseURI()))
    .collect(Collectors.toList());

for (Url url : absUrls) {
    // Create an image request message
    final RequestMessage request = new RequestMessage(url);

    // Extract image
    final ResponseMessage response = document.getContext().getNetwork().send(request);

    // Check whether a response is successful
    if (response.isSuccess()) {
        String[] split = url.getPathname().split("/");
        String path = split[split.length - 1];

        // Save file to a local file system
        FileHelper.writeAllBytes(path, response.getContent().readAsByteArray());
    }
}



从网站提取图片的步骤

  1. 使用 HTMLDocument(Url) 构造函数初始化 HTML 文档。
  2. 使用 getElementsByTagName("img") 方法从文档中收集所有 <img> 元素。该方法返回网页中的 <img> 元素集合。
  3. 遍历 <img> 元素并使用 getAttribute("src") 方法提取每个 <img> 元素的 src 属性。
  4. 使用 Url 类和 HTMLDocument 类的 BaseURI 属性创建绝对图像 URL。
  5. 使用 RequestMessage(url) 构造函数为每个绝对图像 URL 创建一个请求并发送。检查响应以确保请求成功。
  6. 如果响应成功,则使用 FileHelper.writeAllBytes()提取图像数据并将其保存到本地文件系统。

使用 Aspose.HTML for Java,您可以轻松创建一个工具,用于解析 HTML 页面、识别图片来源并下载这些图片。对于那些需要收集图像用于分析、存档或内容创建的人来说,这是一个功能强大的解决方案,而无需手动操作。要进一步了解如何使用 Java 以编程方式从网站中提取不同类型的图像,请参阅文档文章 Extract Images From Website in Java

注意:* 在将保存的图像用于商业用途之前,必须遵守版权法并获得适当的许可或授权。未经他人同意,我们不支持提取和使用他人文件用于商业目的。




开始使用 Java HTML 解析器库

HTML API 是一个高级的网络抓取和 HTML 解析库。可以创建、编辑、浏览节点、提取数据并将 HTML、XHTML 和 MHTML 文件转换为 PDF、图像和其他格式。此外,它还开箱即用地处理 CSS、HTML Canvas、SVG、XPath 和 JavaScript 以扩展操作任务。它是一个独立的 API,不需要安装任何软件。
您可以直接从 Aspose Maven Repository 下载其最新版本,并通过将以下配置添加到 pom.xml 将其安装到基于 Maven 的项目中。


Repository

<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>

Dependency

<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-html</artifactId>
<version>version of aspose-html API</version>
<classifier>jdk17</classifier>
</dependency>

其他支持功能

使用 Aspose.HTML for Java 库解析和处理基于 HTML 的文档。清晰、安全、简单!