Estrarre informazioni da un sito attraverso jsoup, html parser per Java

Postato da ROb | nella categoria Java, Sviluppo web | lunedì, 1 febbraio 2010

0

Ieri mi sono divertito a testare una nuova libreria in Java per il parsing di documenti HTML/XML.

Jsoup, questo il nome particolare di tale libreria, permette con una sintassi a selettori (stile JQuery) di inviduare specifici elementi del DOM di un documento html, sia locale che remoto.

Jsoup, html java parser

Dopo aver scaricato la libreria dal sito ufficiale e averla importata nel mio workspace Eclipse, ho modificato leggermente uno degli esempi proposti per provare a estrarre i titoli e gli url di tutti i post dall’homepage del mio blog (http://www.bits4beats.it).

Beh… il risultato è stato veramente interessante e ho molta voglia di farci qualcosa di più costruttivo. Pensavo addirittura a uno script o un programmino per visualizzare il posizionamento di un sito per particolari keyword su più motori di ricerca. Se avrò voglia, tempo e capacità per farlo pubblicherò un post in merito.

Per ora godetevi queste 10 righe di codice:

		Document doc = Jsoup.parse(new URL("http://www.bits4beats.it/"), 2000);

		Elements resultLinks = doc.select("div.post-title > h2 > a");
		System.out.println("Ultimi post di www.bits4beats.it con jsoup");
		for (Element link : resultLinks) {
			System.out.println();
			String href = link.attr("href");
			System.out.println("Titolo: " + link.text());
			System.out.println("Url: " + href);
		}

Nella riga 1 si crea un oggetto Document facendo il download dell’homepage del blog aspettando al massimo 2000 millisecondi.
Successivamente si cercano tutti gli elementi di tipo a figli diretti di elementi di tipo h2 figli diretti a loro volta di elementi div con classe post-title.
Per ognuno di questi elementi trovati, alle righe 8 e 9, vengono stampati rispettivamente l‘anchor text (cioè il testo cliccabile del link) e l’url del post.

Un ringraziamento allo sviluppatore del progetto, Jonathan Hedley, che ha corretto in tempi brevissimi un piccolo errore nel codice del jsoup Cookbook.

Scrivi un commento