jsoup: L'Analitzador HTML per a Java
Extreu, neteja i manipula HTML amb la simplicitat de jQuery en Java
Què és jsoup?
jsoup és una biblioteca Java lleugera però potent dissenyada per treballar amb HTML del món real. Proporciona una API intuïtiva per analitzar HTML des d'URLs, fitxers o cadenes, extreure i manipular dades mitjançant recorregut DOM, selectors CSS i mètodes moderns d'HTML5. Ideal per a web scraping, extracció de dades i neteja d'HTML, jsoup gestiona el marcatge mal format amb gràcia, igual que faria un navegador.
A diferència dels enfocaments basats en regex, jsoup ofereix un model d'objectes net amb mètodes inspirats en jQuery, simplificant tasques com l'enviament de formularis, la modificació d'atributs i l'extracció de text. Sense dependències i amb llicència MIT, és la preferida dels desenvolupadors Java que necessiten un processament HTML fiable.
Avantatges clau de jsoup:
- Gestió d'HTML real: Analitza HTML desordenat com ho fan els navegadors
- Sintaxi tipus jQuery: Selectors CSS familiars (ex.
doc.select("div.content")
) - Optimitzat per scraping: Segueix redireccions, gestiona cookies i envia formularis
- Multiplataforma: Java pur sense dependències natives
- Seguretat: Prevenció XSS integrada i neteja d'HTML
Perfecte per a mineria de dades, automatització web i anàlisi de contingut.
Per què triar jsoup?
- Simplicitat: API intuïtiva amb suport per selectors CSS
- Fiabilitat: Mantingut activament des del 2009
- Rendiment: Optimitzat per a fluxos i documents grans
- Flexibilitat: Funciona amb fragments, fitxers o URLs en directe
- Sortida neta: Formata i reestructura HTML
Instal·lació
Afegeix jsoup via Maven o Gradle:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
Requisits del sistema: Java 8+
Exemples de Codi
Casos d'ús pràctics de jsoup:
Exemple 1: Analitzar un Document des d'una Cadena
Si tens HTML en una cadena Java i vols analitzar-lo per obtenir-ne el contingut o modificar-lo, jsoup ho pot fer amb poques línies de codi.
El mètode parse(String html, String baseUri) converteix l'HTML d'entrada en un nou Document. El paràmetre baseUri ajuda a resoldre URL relatives en absolutes i hauria de correspondre a la URL des d'on es va recuperar el document. Si això no és rellevant, o si l'HTML conté un element <base>, pots utilitzar el mètode més simple parse(String html).
Exemple 2: Utilitzar Selectors CSS per Trobar Elements
Vols trobar o manipular elements usant selectors CSS. Analitza i manipula directament una cadena HTML:
Exemple 3: Modificar l'HTML d'un Element
Necessites modificar l'HTML d'un element. Utilitza els mètodes establidors d'HTML a Element com es mostra a continuació:
Funcionalitats Avançades
jsoup suporta processament HTML professional:
- Gestió de formularis: Envia dades POST:
Enviament de Formulari
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- Suport per proxy: Scraping via proxies:
Configuració de Proxy
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- Manipulació DOM: Modifica l'estructura HTML:
Canvis DOM
doc.select("div.ads").remove(); // Elimina tots els anuncis doc.select("h1").attr("class", "header"); // Afegeix classe CSS
jsoup vs. HTMLUnit
Diferences clau:
- Enfocament: jsoup analitza HTML estàtic; HTMLUnit simula navegadors (execució JavaScript)
- Velocitat: jsoup és més ràpid per a anàlisi HTML pur
- Estil API: jsoup usa selectors CSS; HTMLUnit imita Selenium
- Casos d'ús: jsoup per scraping; HTMLUnit per proves de pàgines dinàmiques
- Dependències: jsoup no en té; HTMLUnit requereix biblioteques addicionals
Conclusió
jsoup és l'eina definitiva per a desenvolupadors Java que treballen amb HTML. Ideal per:
- Web scraping: Extreu dades de qualsevol lloc web
- Neteja de dades: Sanititza i normalitza HTML
- Anàlisi de contingut: Analitza feeds RSS o arxius web
- Proves: Verifica l'estructura HTML en aplicacions
Amb llicència MIT i API intuïtiva, jsoup és l'opció principal per a processament HTML en Java.
Productes Similars
- Apache POI XWPF | API Java de codi obert per crear i modificar fitxers DOCX
- API FileFormat.Words | API .NET de codi obert per a formats de fitxers de Microsoft Word
- DocX | API .NET de codi obert per crear i modificar fitxers DOCX
- Docx4J | API Java de codi obert per crear i modificar fitxers DOC i DOCX
- ExcelDataReader | API .NET de codi obert per llegir documents XLS, XLSX, CSV i full de càlcul