jsoup : Le Parseur HTML pour Java
Extrayez, nettoyez et manipulez du HTML avec la simplicité de jQuery en Java
Qu'est-ce que jsoup ?
jsoup est une bibliothèque Java légère mais puissante conçue pour travailler avec du HTML réel. Elle fournit une API intuitive pour analyser du HTML à partir d'URLs, de fichiers ou de chaînes de caractères, extraire et manipuler des données en utilisant le parcours DOM, les sélecteurs CSS et des méthodes HTML5 modernes. Idéale pour le web scraping, l'extraction de données et la sanitisation HTML, jsoup gère élégamment le balisage malformé – comme le ferait un navigateur.
Contrairement aux approches basées sur les expressions régulières, jsoup offre un modèle objet clair avec des méthodes inspirées de jQuery, simplifiant des tâches comme la soumission de formulaires, la modification d'attributs et l'extraction de texte. Sans dépendances et sous licence MIT, c'est un outil privilégié des développeurs Java pour le traitement HTML.
Principaux avantages de jsoup :
- Gestion du HTML réel : Analyse du HTML désordonné comme un navigateur
- Syntaxe style jQuery : Sélecteurs CSS familiers (ex.
doc.select("div.content")
) - Optimisé pour le scraping : Gère les redirections, cookies et soumissions de formulaires
- Multiplateforme : Pur Java sans dépendances natives
- Sécurité : Prévention XSS intégrée et sanitisation HTML
Parfait pour l'exploration de données, l'automatisation web et l'analyse de contenu.
Pourquoi choisir jsoup ?
- Simplicité : API intuitive avec support des sélecteurs CSS
- Fiabilité : Maintenue activement depuis 2009
- Performance : Optimisé pour le streaming et les grands documents
- Flexibilité : Fonctionne avec des fragments, fichiers ou URLs live
- Sortie propre : Reformate et indente le HTML
Installation
Ajoutez jsoup via Maven ou Gradle :
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
Configuration requise : Java 8+
Exemples de Code
Cas d'utilisation pratiques de jsoup :
Exemple 1 : Analyser un Document à partir d'une Chaîne
Si vous avez du HTML dans une chaîne Java et que vous souhaitez l'analyser pour en extraire le contenu ou le modifier, jsoup peut le faire en quelques lignes de code.
La méthode parse(String html, String baseUri) convertit le HTML en un nouveau Document. Le paramètre baseUri permet de résoudre les URLs relatives en absolues et devrait correspondre à l'URL d'origine. Si ce n'est pas pertinent, ou si le HTML contient une balise
Exemple 2 : Utiliser des Sélecteurs CSS pour Trouver des Éléments
Vous voulez trouver ou manipuler des éléments avec des sélecteurs CSS. Analysez et manipulez directement une chaîne HTML :
Exemple 3 : Modifier le HTML d'un Élément
Vous devez modifier le HTML d'un élément. Utilisez les méthodes de modification d'Element comme montré dans l'exemple suivant.
Fonctionnalités Avancées
jsoup prend en charge le traitement HTML professionnel :
- Gestion de formulaires : Soumettre des données POST :
Soumission de Formulaire
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- Support des proxies : Scraper via des proxies :
Configuration de Proxy
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- Manipulation DOM : Modifier la structure HTML :
Modifications DOM
doc.select("div.ads").remove(); // Supprimer toutes les publicités doc.select("h1").attr("class", "header"); // Ajouter une classe CSS
jsoup vs. HTMLUnit
Différences clés :
- Focus : jsoup analyse du HTML statique ; HTMLUnit simule des navigateurs (exécution JavaScript)
- Vitesse : jsoup est plus rapide pour l'analyse HTML pure
- Style d'API : jsoup utilise des sélecteurs CSS ; HTMLUnit imite Selenium
- Cas d'usage : jsoup pour le scraping ; HTMLUnit pour les pages dynamiques
- Dépendances : jsoup n'en a aucune ; HTMLUnit nécessite des librairies supplémentaires
Conclusion
jsoup est l'outil ultime pour les développeurs Java travaillant avec du HTML. Idéal pour :
- Web scraping : Extraire des données de n'importe quel site
- Nettoyage de données : Sanitiser et normaliser du HTML
- Analyse de contenu : Parser des flux RSS ou archives web
- Tests : Vérifier la structure HTML dans les applications
Avec sa licence MIT et son API intuitive, jsoup est le premier choix pour le traitement HTML en Java.
Produits Similaires
- Apache POI XWPF | API Java Open Source pour créer et modifier des fichiers DOCX
- API FileFormat.Slides | API .NET Open Source pour le format de fichier PPTX de Microsoft PowerPoint
- API FileFormat.Words | API .NET Open Source pour les formats de fichiers Microsoft Word
- DocX | API .NET Open Source pour créer et modifier des fichiers DOCX
- Docx4J | API Java Open Source pour créer et modifier des fichiers DOC et DOCX