Análise de HTML em Java: melhores bibliotecas e exemplos de código

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Análise de HTML em Java: visão geral das bibliotecas e exemplos práticos



A análise de HTML (extração de dados de páginas web) é uma das tarefas principais no desenvolvimento moderno. Java oferece ferramentas poderosas para esse fim. Neste artigo, abordaremos três bibliotecas populares: Jsoup, HtmlUnit e Apache Tika. Você aprenderá como instalá-las, quais problemas elas resolvem e verá exemplos de código funcionais.



Por que a análise de HTML é necessária?

A análise de HTML é usada para:

  • Coletar dados de sites (preços, notícias, contatos).
  • Testar aplicações web (extração de elementos da interface).
  • Automatizar operações rotineiras (preenchimento de formulários, verificação de links).
  • Analisar a estrutura SEO de sites.


1. Jsoup — o parser HTML mais popular para Java

Jsoup é uma biblioteca leve e intuitiva para trabalhar com HTML. Ela é capaz de carregar páginas, analisá-las, extrair dados usando seletores CSS e métodos semelhantes ao jQuery. O Jsoup corrige automaticamente marcações incorretas, tornando-o ideal para análise de sites reais.



Instalação (Maven)

<dependency>    <groupId>org.jsoup</groupId>    <artifactId>jsoup</artifactId>    <version>1.17.2</version></dependency>


Exemplo: extração de títulos de todas as notícias

Suponha que precisamos obter todos os títulos de artigos de um portal de notícias. Usamos o seletor CSS h2.news-title.

import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.select.Elements;

public class JsoupExample { public static void main(String[] args) throws Exception { // Carregamos a página HTML Document doc = Jsoup.connect("https://example.com/news") .userAgent("Mozilla/5.0") .timeout(5000) .get();

// Extraímos todos os elementos h2 com a classe "news-title" Elements titles = doc.select("h2.news-title");

// Exibimos o texto de cada título for (var title : titles) { System.out.println(title.text()); } }}

Características do Jsoup:

  • Funciona sem navegador, apenas com requisições HTTP.
  • Suporte a seletores CSS (como no jQuery).
  • Possibilidade de manipulação do DOM (adição, remoção de elementos).
  • Não executa JavaScript.


2. HtmlUnit — análise com suporte a JavaScript

HtmlUnit é um emulador de navegador em Java. Ele não apenas analisa HTML, mas processa completamente a página: executa JavaScript, carrega CSS, lida com requisições AJAX. Ideal para sites SPA modernos (React, Angular).



Instalação (Maven)

<dependency>    <groupId>net.sourceforge.htmlunit</groupId>    <artifactId>htmlunit</artifactId>    <version>2.70.0</version></dependency>


Exemplo: obtenção de dados após o carregamento de JavaScript

Suponha que na página haja um bloco dinâmico que aparece 2 segundos após o carregamento. O HtmlUnit aguardará por ele.

import com.gargoylesoftware.htmlunit.WebClient;import com.gargoylesoftware.htmlunit.html.HtmlPage;import com.gargoylesoftware.htmlunit.html.HtmlElement;

public class HtmlUnitExample { public static void main(String[] args) throws Exception { try (WebClient webClient = new WebClient()) { // Desativamos CSS e logging para velocidade webClient.getOptions().setCssEnabled(false); webClient.getOptions().setJavaScriptEnabled(true);

// Carregamos a página HtmlPage page = webClient.getPage("https://example.com/dynamic");

Recommendations