Parsing de HTML em Java: bibliotecas Jsoup e HtmlUnit

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 Jsoup e HtmlUnit



Parsing de HTML (ou web scraping) é o processo de extrair dados de documentos HTML. Em Java, existem várias bibliotecas poderosas para essa tarefa, entre as quais se destacam Jsoup (para HTML estático) e HtmlUnit (para páginas dinâmicas com JavaScript). Neste artigo, vamos analisar detalhadamente ambas as bibliotecas, mostrar exemplos de código e ajudar você a escolher a ferramenta adequada para o seu projeto no pythonlib.ru.



O que é Jsoup?

Jsoup é uma biblioteca leve para parsing, extração e manipulação de documentos HTML. Ela suporta seletores CSS, o que a torna intuitiva para desenvolvedores web. O Jsoup funciona com qualquer HTML, mesmo que esteja mal formatado.



Instalação do Jsoup

Adicione a dependência ao seu pom.xml (Maven):

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


Exemplo de parsing com Jsoup

Vamos considerar um exemplo básico — obter o título da página e todos os links:

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

public class JsoupExample { public static void main(String[] args) throws Exception { // 1. Carregamos o documento HTML Document doc = Jsoup.connect("https://example.com").get();

// 2. Extraímos o título da página String title = doc.title(); System.out.println("Título: " + title);

// 3. Encontramos todos os links (tags <a>) Elements links = doc.select("a[href]"); for (Element link : links) { String href = link.attr("href"); String text = link.text(); System.out.println("Link: " + href + " — texto: " + text); }

// 4. Extraímos o texto de um bloco específico (por exemplo, <div class="content">) Element content = doc.selectFirst("div.content"); if (content != null) { System.out.println("Conteúdo do bloco: " + content.text()); } }}

Neste exemplo, Jsoup.connect() faz uma requisição HTTP, e select() usa seletores CSS para encontrar elementos. O Jsoup também pode trabalhar com arquivos locais e strings HTML.



O que é HtmlUnit?

HtmlUnit é um navegador headless em Java. Ele não apenas faz parsing de HTML, mas também executa JavaScript, processa requisições AJAX e emula ações do usuário. É a escolha ideal para sites onde o conteúdo é carregado dinamicamente.



Instalação do HtmlUnit

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


Exemplo de parsing com HtmlUnit

Parsing de uma página que carrega dados via JavaScript:

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 { // 1. Criamos um WebClient (análogo a um navegador) try (WebClient webClient = new WebClient()) { // Desabilitamos CSS e logging para acelerar webClient.getOptions().setCssEnabled(false); webClient.getOptions().setJavaScriptEnabled(true); webClient.getOptions().setThrowExceptionOnScriptError(false);

// 2. Carregamos a página (o JavaScript será executado automaticamente) HtmlPage page = webClient.getPage("https://example.com/dynamic");

// 3. Aguardamos, p

Recommendations