Parsing HTML en Java : meilleures bibliothèques et exemples de code

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Parsing HTML en Java : présentation des bibliothèques et exemples pratiques



Le parsing HTML (extraction de données à partir de pages web) est l'une des tâches clés du développement moderne. Java fournit des outils puissants à cet effet. Dans cet article, nous allons examiner trois bibliothèques populaires : Jsoup, HtmlUnit et Apache Tika. Vous apprendrez comment les installer, quelles tâches elles résolvent, et vous verrez des exemples de code fonctionnels.



Pourquoi le parsing HTML est-il nécessaire ?

Le parsing HTML est utilisé pour :

  • Collecter des données à partir de sites web (prix, actualités, contacts).
  • Tester des applications web (extraire des éléments d'interface).
  • Automatiser des opérations routinières (remplir des formulaires, vérifier des liens).
  • Analyser la structure SEO des sites.


1. Jsoup — le parseur HTML le plus populaire pour Java

Jsoup est une bibliothèque légère et intuitive pour travailler avec HTML. Elle peut charger des pages, les parser, et extraire des données à l'aide de sélecteurs CSS et de méthodes similaires à jQuery. Jsoup corrige automatiquement le balisage incorrect, ce qui la rend idéale pour le parsing de sites réels.



Installation (Maven)

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


Exemple : extraction des titres de toutes les actualités

Supposons que nous devions obtenir tous les titres d'articles d'un portail d'actualités. Utilisons le sélecteur 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 { // Charger la page HTML Document doc = Jsoup.connect("https://example.com/news") .userAgent("Mozilla/5.0") .timeout(5000) .get();

// Extraire tous les éléments h2 avec la classe "news-title" Elements titles = doc.select("h2.news-title");

// Afficher le texte de chaque titre for (var title : titles) { System.out.println(title.text()); } }}

Caractéristiques de Jsoup :

  • Fonctionne sans navigateur, uniquement avec des requêtes HTTP.
  • Prise en charge des sélecteurs CSS (comme dans jQuery).
  • Possibilité de manipuler le DOM (ajout, suppression d'éléments).
  • Ne peut pas exécuter JavaScript.


2. HtmlUnit — parsing avec prise en charge de JavaScript

HtmlUnit est un émulateur de navigateur en Java. Il ne se contente pas de parser le HTML, il traite complètement la page : exécute JavaScript, charge le CSS, gère les requêtes AJAX. Idéal pour les sites SPA modernes (React, Angular).



Installation (Maven)

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


Exemple : récupération de données après le chargement de JavaScript

Supposons qu'il y ait sur la page un bloc dynamique qui apparaît 2 secondes après le chargement. HtmlUnit attendra son apparition.

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()) { // Désactiver le CSS et la journalisation pour la vitesse webClient.getOptions().setCssEnabled(false); webClient.getOptions().setJavaScriptEnabled(true);

// Charger la page HtmlPage page = webClient.getPage("https://example.com/dynamic");

Recommendations