Reputation: 1
I have a problem with parsing a wiki page using Jsoup in a listview:
try {
// NB: controllate di importare le classi giuste
// all'inizio ci deve essere org.jsoup
// ricavo l'html della pagina con user agent desktop (Chrome)
// e timeout 30000
Document doc = Jsoup.connect("https://it.wikiquote.org/wiki/Sonno")
.userAgent("Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22")
.timeout(30000).get();
// prendo la tabella
// (con .first() ottengo il primo elemento, in questo caso l'unico )
Element tabella = doc.getElementsByClass("ul").first();
List<String> titoli = new ArrayList<>();
List<String> descrizioni = new ArrayList<>();
// prendo gli elementi che mi interessano dalla tabella
Elements sezioni = tabella.getElementsByClass("li");
for(Element sezione : sezioni)//per ogni sezione tra gli elementi ricavati prima
{
//ricavo ogni riga nella sezione
Elements righe_sezione = sezione.getElementsByClass("li");
for(Element riga : righe_sezione)
{
//prelevo la cella delle info
Element info = riga.getElementsByClass("li").first();
// ricavo il titolo
// (con .text() ottengo il testo non formattato
String titolo = info.getElementsByClass("li").first().text();
// ricavo la descrizione
// (uso .first() per essere sicuro che sia proprio la descrizione
// e non i moderatori )
String descrizione = info.getElementsByTag("li").first().text();
// inserisco nei rispettivi arraylist
titoli.add(titolo);
descrizioni.add(descrizione);
}
}
} catch (Exception e) {
e.printStackTrace();
}
I need to parse this page: https://it.wikiquote.org/wiki/Sonno
Upvotes: 0
Views: 69
Reputation: 11712
You try to select <ul>
elements I guess, but what you do is look for elements with a class ul
. Instead you should do this:
Element tabella = doc.getElementsByTag("ul").first();
or you can use a CSS selector:
Element tabella = doc.select("ul").first();
Upvotes: 1