jsoup: Il Parser HTML per Java
Esegui scraping, pulizia e manipolazione di HTML con la semplicità di jQuery in Java
Cos'è jsoup?
jsoup è una libreria Java leggera ma potente progettata per lavorare con HTML reale. Offre un'API intuitiva per analizzare HTML da URL, file o stringhe, estraendo e manipolando dati tramite navigazione DOM, selettori CSS e metodi HTML5 moderni. Ideale per web scraping, estrazione dati e sanificazione HTML, jsoup gestisce markup malformati con eleganza, proprio come farebbe un browser.
A differenza degli approcci basati su regex, jsoup offre un modello a oggetti pulito con metodi ispirati a jQuery, semplificando operazioni come invio di form, modifica di attributi ed estrazione di testo. Senza dipendenze e con licenza MIT, è la scelta preferita degli sviluppatori Java per l'elaborazione HTML affidabile.
Vantaggi principali di jsoup:
- Gestione di HTML reale: Analizza HTML disordinato come farebbe un browser
- Sintassi simile a jQuery: Selettori CSS familiari (es.
doc.select("div.content")
) - Ottimizzato per scraping: Segue reindirizzamenti, gestisce cookie e invia form
- Cross-platform: Puro Java senza dipendenze native
- Sicurezza: Prevenzione XSS integrata e sanificazione HTML
Perfetto per data mining, automazione web e analisi dei contenuti.
Perché Scegliere jsoup?
- Semplicità: API intuitiva con supporto per selettori CSS
- Affidabilità: Manutenuto attivamente dal 2009
- Performance: Ottimizzato per streaming e documenti di grandi dimensioni
- Flessibilità: Funziona con frammenti, file o URL live
- Output pulito: Formattazione e pretty-printing dell'HTML
Installazione
Aggiungi jsoup via Maven o Gradle:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
Requisiti di sistema: Java 8+
Esempi di Codice
Casi d'uso pratici di jsoup:
Esempio 1: Analizzare un Documento da una Stringa
Se hai HTML in una stringa Java e vuoi analizzarlo per ottenerne il contenuto o modificarlo, jsoup può farlo con poche righe di codice.
Il metodo parse(String html, String baseUri)
converte l'HTML in un nuovo Document. Il parametro baseUri
aiuta a risolvere URL relativi in assoluti e dovrebbe corrispondere all'URL da cui è stato ottenuto il documento. Se non rilevante, o se l'HTML contiene un tag <base>
, puoi usare il metodo più semplice parse(String html)
.
Esempio 2: Usare Selettori CSS per Trovare Elementi
Per trovare o manipolare elementi con selettori CSS, analizza e modifica una stringa HTML direttamente:
Esempio 3: Modificare l'HTML di un Elemento
Per modificare l'HTML di un elemento, usa i metodi setter di Element
come mostrato nel codice seguente.
Funzionalità Avanzate
jsoup supporta elaborazione HTML professionale:
- Gestione form: Invia dati POST:
Invio Form
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- Supporto proxy: Scraping tramite proxy:
Configurazione Proxy
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- Manipolazione DOM: Modifica struttura HTML:
Modifiche DOM
doc.select("div.ads").remove(); // Rimuovi tutti gli annunci doc.select("h1").attr("class", "header"); // Aggiungi classe CSS
jsoup vs. HTMLUnit
Differenze chiave:
- Focus: jsoup analizza HTML statico; HTMLUnit simula browser (esecuzione JavaScript)
- Velocità: jsoup è più veloce per il parsing HTML puro
- Stile API: jsoup usa selettori CSS; HTMLUnit emula Selenium
- Casi d'uso: jsoup per scraping; HTMLUnit per test su pagine dinamiche
- Dipendenze: jsoup non ne ha; HTMLUnit richiede librerie aggiuntive
Conclusione
jsoup è il toolkit HTML definitivo per sviluppatori Java. Ideale per:
- Web scraping: Estrai dati da qualsiasi sito web
- Pulizia dati: Sanifica e normalizza HTML
- Analisi contenuti: Parsing di feed RSS o archivi web
- Testing: Verifica la struttura HTML nelle app
Con licenza MIT e API intuitiva, jsoup è la scelta migliore per l'elaborazione HTML in Java.
Prodotti Simili
- Apache POI XWPF | API Java open source per creare e modificare file DOCX
- API FileFormat.Slides | API .NET open source per il formato file PPTX di Microsoft PowerPoint
- API FileFormat.Words | API .NET open source per formati di file Microsoft Word
- DocX | API .NET open source per creare e modificare file DOCX
- Docx4J | API Java open source per creare e modificare file DOC e DOCX