jsoup: O Analisador HTML para Java
Raspe, limpe e manipule HTML com a simplicidade do jQuery em Java
O que é jsoup?
jsoup é uma biblioteca Java leve mas poderosa projetada para trabalhar com HTML real. Fornece uma API fluida para analisar HTML de URLs, arquivos ou strings, extrair e manipular dados usando navegação DOM, seletores CSS e métodos modernos HTML5. Ideal para raspagem web, extração de dados e sanitização HTML, o jsoup lida com marcação malformada graciosamente - assim como um navegador faria.
Diferente de abordagens regex brutas, jsoup oferece um modelo de objeto limpo com métodos inspirados no jQuery, simplificando tarefas como envio de formulários, modificação de atributos e extração de texto. Sem dependências e com licença MIT, é o favorito dos desenvolvedores Java que precisam de processamento HTML confiável.
Vantagens principais do jsoup:
- Processamento de HTML real: Analisa HTML bagunçado como navegadores fazem
- Sintaxe estilo jQuery: Seletores CSS familiares (ex.
doc.select("div.content")
) - Otimizado para raspagem: Segue redirecionamentos, lida com cookies e envia formulários
- Multiplataforma: Java puro sem dependências nativas
- Segurança: Prevenção XSS e sanitização HTML embutidas
Perfeito para mineração de dados, automação web e análise de conteúdo.
Por que escolher jsoup?
- Simplicidade: API intuitiva com suporte a seletores CSS
- Confiabilidade: Mantido ativamente desde 2009
- Performance: Otimizado para streaming e documentos grandes
- Flexibilidade: Trabalha com fragmentos, arquivos ou URLs ao vivo
- Saída limpa: Formata e reformata HTML elegantemente
Instalação
Adicione jsoup via Maven ou Gradle:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
Requisitos do sistema: Java 8+
Exemplos de Código
Casos de uso práticos do jsoup:
Exemplo 1: Analisar um Documento de uma String
Se você tem HTML em uma string Java e quer analisá-lo para obter seu conteúdo ou modificá-lo, jsoup pode fazer isso com poucas linhas de código.
O método parse(String html, String baseUri)
converte o HTML de entrada em um novo Documento. O parâmetro baseUri
ajuda a resolver URLs relativos em absolutos e deve corresponder à URL de onde o documento foi obtido. Se isso não for relevante, ou se o HTML contiver um elemento <base>
, você pode usar o método mais simples parse(String html)
.
Exemplo 2: Usar Seletores CSS para Encontrar Elementos
Você quer encontrar ou manipular elementos usando seletores CSS. Analise e manipule uma string HTML diretamente:
Exemplo 3: Modificar o HTML de um Elemento
Você precisa modificar o HTML de um elemento. Use os métodos setter HTML em Element como mostrado no seguinte código de exemplo.
Recursos Avançados
jsoup suporta processamento HTML profissional:
- Manipulação de formulários: Envie dados POST:
Envio de Formulário
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- Suporte a proxy: Raspe via proxy:
Configuração de Proxy
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- Manipulação DOM: Modifique estrutura HTML:
Alterações DOM
doc.select("div.ads").remove(); // Remove todos os anúncios doc.select("h1").attr("class", "header"); // Adiciona classe CSS
jsoup vs. HTMLUnit
Diferenças chave:
- Foco: jsoup analisa HTML estático; HTMLUnit simula navegadores (executa JavaScript)
- Velocidade: jsoup é mais rápido para análise pura de HTML
- Estilo API: jsoup usa seletores CSS; HTMLUnit imita Selenium
- Casos de uso: jsoup para raspagem; HTMLUnit para teste de páginas dinâmicas
- Dependências: jsoup não tem; HTMLUnit requer bibliotecas adicionais
Conclusão
jsoup é o kit de ferramentas HTML definitivo para desenvolvedores Java. Ideal para:
- Raspagem web: Extrair dados de qualquer site
- Limpeza de dados: Sanitizar e normalizar HTML
- Análise de conteúdo: Analisar feeds RSS ou arquivos web
- Testes: Verificar estrutura HTML em aplicativos
Com licença MIT e API intuitiva, jsoup é a escolha principal para processamento HTML baseado em Java.
Produtos Similares
- Apache POI XWPF | API Java de código aberto para criar e modificar arquivos DOCX
- DocX | API .NET de código aberto para criar e modificar arquivos DOCX
- Docx4J | API Java de código aberto para criar e modificar arquivos DOC e DOCX
- ExcelDataReader | API .NET de código aberto para ler documentos XLS, XLSX, CSV e planilhas
- FileFormat.Cells | Cerate e atualizar arquivos Excel com C# .NET