Analyse HTML en Java : bibliothèques Jsoup et HtmlUnit

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

Analyse HTML en Java : aperçu des bibliothèques Jsoup et HtmlUnit



L'analyse HTML (ou web scraping) est le processus d'extraction de données à partir de documents HTML. En Java, il existe plusieurs bibliothèques puissantes pour cette tâche, parmi lesquelles se distinguent Jsoup (pour le HTML statique) et HtmlUnit (pour les pages dynamiques avec JavaScript). Dans cet article, nous allons détailler ces deux bibliothèques, montrer des exemples de code et vous aider à choisir l'outil adapté à votre projet sur pythonlib.ru.



Qu'est-ce que Jsoup ?

Jsoup est une bibliothèque légère pour l'analyse, l'extraction et la manipulation de documents HTML. Elle prend en charge les sélecteurs CSS, ce qui la rend intuitive pour les développeurs web. Jsoup fonctionne avec n'importe quel HTML, même s'il est mal formaté.



Installation de Jsoup

Ajoutez la dépendance dans votre pom.xml (Maven) :

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


Exemple d'analyse avec Jsoup

Considérons un exemple de base — récupération du titre de la page et de tous les liens :

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. Charger le document HTML Document doc = Jsoup.connect("https://example.com").get();

// 2. Extraire le titre de la page String title = doc.title(); System.out.println("Titre : " + title);

// 3. Trouver tous les liens (balises <a>) Elements links = doc.select("a[href]"); for (Element link : links) { String href = link.attr("href"); String text = link.text(); System.out.println("Lien : " + href + " — texte : " + text); }

// 4. Extraire le texte d'un bloc spécifique (par exemple, <div class="content">) Element content = doc.selectFirst("div.content"); if (content != null) { System.out.println("Contenu du bloc : " + content.text()); } }}

Dans cet exemple, Jsoup.connect() effectue une requête HTTP, et select() utilise des sélecteurs CSS pour rechercher des éléments. Jsoup peut également travailler avec des fichiers locaux et des chaînes HTML.



Qu'est-ce que HtmlUnit ?

HtmlUnit est un navigateur sans tête (headless browser) en Java. Il ne se contente pas d'analyser le HTML, il exécute également JavaScript, traite les requêtes AJAX et émule les actions de l'utilisateur. C'est le choix idéal pour les sites où le contenu est chargé dynamiquement.



Installation de HtmlUnit

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


Exemple d'analyse avec HtmlUnit

Analyse d'une page qui charge des données 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. Créer un WebClient (analogue d'un navigateur) try (WebClient webClient = new WebClient()) { // Désactiver CSS et la journalisation pour accélérer webClient.getOptions().setCssEnabled(false); webClient.getOptions().setJavaScriptEnabled(true); webClient.getOptions().setThrowExceptionOnScriptError(false);

// 2. Charger la page (JavaScript s'exécutera automatiquement) HtmlPage page = webClient.getPage("https://example.com/dynamic");

// 3. Attendre, p

Recommendations