Extrair dados e recursos de HTML

Aspose.HTML for Java carrega HTML de um arquivo, URL, string ou stream em um HTMLDocument. Aplicativos Java podem examinar o DOM, selecionar elementos, ler texto e atributos, resolver URLs relativas e salvar os valores necessários ou os recursos vinculados.

Use métodos DOM, seletores CSS ou expressões XPath quando as informações necessárias fizerem parte da estrutura do documento. Se um elemento apontar para uma imagem, arquivo SVG, folha de estilos ou outro recurso, use a URL resolvida e o serviço de rede para baixar seus bytes. Isso separa a análise de HTML da obtenção de recursos e mantém a lógica de extração concentrada nos dados necessários para o aplicativo.


Escolher uma tarefa de extração de dados em Java

Selecione um exemplo específico para o tipo de conteúdo ou recurso que você precisa obter.

Extrair imagens de sites

Encontre elementos de imagem, resolva URLs de origem relativas e salve os arquivos de imagem referenciados.

Extrair SVG de sites

Salve a marcação SVG inline e baixe recursos SVG externos referenciados por uma página HTML.

Baixar arquivo de uma URL

Solicite uma URL de recurso conhecida, verifique a resposta e grave os bytes retornados em um arquivo local.


Extrair links de HTML em Java

O exemplo carrega uma página HTML, lê o atributo href de cada link, resolve as referências relativas em relação à URL do documento e grava links HTTP e HTTPS exclusivos em output/links.txt. O mesmo padrão de seleção pode ser adaptado para texto, metadados, valores de formulários ou atributos de recursos.

Extrair links de HTML em Java

Path outputPath = Paths.get("output", "links.txt");
Files.createDirectories(outputPath.getParent());

try (HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/java/")) {
    HTMLCollection anchors = document.getElementsByTagName("a");
    Set<String> links = new LinkedHashSet<>();
    Iterator<Element> iterator = anchors.iterator();

    while (iterator.hasNext()) {
        Element anchor = iterator.next();
        String href = anchor.getAttribute("href");
        if (href.isEmpty()) {
            continue;
        }

        Url linkUrl = new Url(href, document.getBaseURI());
        String protocol = linkUrl.getProtocol();
        if ("http:".equals(protocol) || "https:".equals(protocol)) {
            links.add(linkUrl.getHref());
        }
    }

    Files.write(outputPath, links, StandardCharsets.UTF_8);
}

Etapas para extrair links de HTML

  1. Carregue a origem com a classe HTMLDocument .
  2. Selecione os elementos de link com getElementsByTagName("a").
  3. Leia cada atributo href e ignore valores vazios.
  4. Resolva referências relativas com a classe Url e o URI base do documento.
  5. Mantenha os links HTTP e HTTPS, remova duplicatas e salve a coleção em um arquivo de texto.

Encontrar dados HTML com DOM, seletores CSS ou XPath

Escolha o método de seleção adequado à estrutura do documento de origem:

  • Coleções DOM – use getElementsByTagName() quando forem necessários todos os elementos com uma tag conhecida.
  • Seletores CSS – use querySelector() para a primeira correspondência ou querySelectorAll() para todos os elementos que correspondam a um seletor CSS.
  • XPath – use expressões XPath quando a seleção depender da hierarquia, de atributos ou de condições de texto difíceis de expressar com um seletor CSS.
  • URLs de recursos – leia atributos como src ou href, resolva-os em relação ao URI base do documento e solicite apenas os arquivos necessários para o aplicativo.

Consulte HTML Navigation para ver exemplos de DOM, seletores CSS e XPath, ou abra a documentação Data Extraction para obter exemplos voltados a recursos.


Perguntas frequentes sobre extração de dados HTML

1. O Aspose.HTML for Java pode extrair dados específicos sem salvar a página inteira?

Sim. Carregue a origem em um HTMLDocument, selecione apenas os nós necessários e armazene o texto, os atributos ou os recursos referenciados. O aplicativo não precisa salvar uma cópia completa da página.

2. Como extrair apenas elementos HTML específicos em Java?

Use getElementsByTagName() para uma tag conhecida, querySelector() ou querySelectorAll() para correspondências com seletores CSS, ou XPath quando a seleção depender da hierarquia do documento, de atributos ou de condições de texto.

3. O Aspose.HTML for Java pode extrair linhas e células de tabelas HTML?

Sim. Selecione os elementos table, tr, th e td pelo DOM e depois mapeie o texto e os atributos para a estrutura de dados necessária ao aplicativo Java.

4. O Aspose.HTML for Java é gratuito para extração de dados?

Aspose.HTML for Java é uma biblioteca comercial. Você pode baixar uma versão de avaliação e solicitar uma licença temporária para testar a extração de dados sem as limitações do modo de avaliação antes da compra.


Instalar Aspose.HTML for Java

Adicione Aspose.HTML for Java a partir do repositório oficial da Aspose. Substitua ASPOSE_HTML_VERSION por uma versão exata disponível na página de releases do Aspose.HTML for Java e recarregue ou recompile o projeto para resolver a dependência.

Adicione o repositório e a dependência ao projeto Maven:

Maven – pom.xml

<repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <url>https://releases.aspose.com/java/repo/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-html</artifactId>
        <version>ASPOSE_HTML_VERSION</version>
    </dependency>
</dependencies>

Adicione o repositório e a dependência ao projeto Gradle:

Gradle – build.gradle

repositories {
    maven {
        url = uri('https://releases.aspose.com/java/repo/')
    }
}
dependencies {
    implementation 'com.aspose:aspose-html:ASPOSE_HTML_VERSION'
}

Use um JDK compatível com a versão selecionada. Para instalação manual do JAR, Kotlin DSL, atualizações e solução de problemas de dependência, consulte Install Aspose.HTML for Java .

Outras tarefas com Aspose.HTML for Java

Continue com guias Java específicos para criar, converter, mesclar e processar documentos HTML.