Parsing de HTML em Java: Jsoup, HtmlUnit e outras ferramentas

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

Parsing de HTML em Java: visão geral das bibliotecas e ferramentas



Parsing de HTML é o processo de extração de dados estruturados de documentos HTML. Em Java, existem várias bibliotecas poderosas para essa tarefa, que permitem não apenas analisar páginas estáticas, mas também processar conteúdo dinâmico. Neste artigo, veremos três das ferramentas mais populares: Jsoup, HtmlUnit e Jericho HTML Parser. Cada uma delas tem suas próprias características e áreas de aplicação.



1. Jsoup — parser HTML universal



Jsoup é a biblioteca Java mais popular para trabalhar com HTML. Ela fornece uma API conveniente para carregar, analisar e extrair dados, além de suportar seletores CSS e manipulações da árvore DOM. O Jsoup é ideal para páginas estáticas e tarefas simples de web scraping.



Principais recursos:

  • Carregamento de HTML a partir de URL, arquivo ou string
  • Extração de dados usando seletores CSS
  • Limpeza de HTML removendo tags indesejadas
  • Modificação do DOM (adição/remoção de elementos)
  • Correção automática de HTML inválido


Exemplo de código: extraindo títulos de notícias

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 { // Carregar a página HTML Document doc = Jsoup.connect("https://example.com/news") .userAgent("Mozilla/5.0") .timeout(5000) .get(); // Extrair todos os títulos h2 com a classe "news-title" Elements titles = doc.select("h2.news-title"); // Exibir o texto de cada título titles.forEach(title -> System.out.println(title.text())); }}


2. HtmlUnit — parsing com suporte a JavaScript



HtmlUnit é um navegador headless em Java que emula o funcionamento de um navegador web. Diferente do Jsoup, ele executa código JavaScript, processa requisições AJAX e suporta cookies. É uma ferramenta indispensável para parsing de aplicações SPA modernas e sites com conteúdo dinâmico.



Principais características:

  • Emulação completa do navegador (Chrome, Firefox, IE)
  • Execução de JavaScript (incluindo jQuery e React)
  • Suporte a formulários, cliques e navegação entre páginas
  • Trabalho com cookies, sessões e redirecionamentos
  • Suporte integrado a XPath e seletores CSS


Exemplo de código: aguardando carregamento de conteúdo dinâmico

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()) { // Desabilitar logs e timeouts webClient.getOptions().setThrowExceptionOnScriptError(false); webClient.getOptions().setJavaScriptEnabled(true); // Carregar a página HtmlPage page = webClient.getPage("https://example.com/dynamic"); // Aguardar 2 segundos para execução do JS webClient.waitForBackgroundJavaScript(2000); // Extrair dados por XPath HtmlElement element = page.getFirstByXPath("//div[@class='result']/p"); System.out.println("Resultado: " + element.getTextContent()); } }}


3. Jericho HTML Parser — leve e rápido



Jericho HTML Parser é uma biblioteca leve com dependências mínimas. Ela lida muito bem com parsing de HTML inválido e fornece acesso de baixo nível à estrutura do documento.

Recommendations