Jsoup Estrai gli URL e i titoli dei link


Esempio

Jsoup può essere usato per estrarre facilmente tutti i link da una pagina web. In questo caso, possiamo usare Jsoup per estrarre solo link specifici che vogliamo, qui, quelli in un'intestazione h3 su una pagina. Possiamo anche ottenere il testo dei collegamenti.

Document doc = Jsoup.connect("http://stackoverflow.com").userAgent("Mozilla").get();
for (Element e: doc.select("a.question-hyperlink")) {
    System.out.println(e.attr("abs:href"));
    System.out.println(e.text());
    System.out.println();
}

Questo dà il seguente risultato:

http://stackoverflow.com/questions/12920296/past-5-week-calculation-in-webi-bo-4-0
Past 5 week calculation in WEBI (BO 4.0)?

http://stackoverflow.com/questions/36303701/how-to-get-information-about-the-visualized-elements-in-listview
How to get information about the visualized elements in listview?

[...]

Cosa sta succedendo qui:

  • Innanzitutto, otteniamo il documento HTML dall'URL specificato. Questo codice imposta anche l'intestazione User Agent della richiesta su "Mozilla", in modo che il sito web serva la pagina che di solito servirà ai browser.

  • Quindi, utilizzare select(...) e un ciclo for per ottenere tutti i collegamenti alle domande Stack Overflow, in questo caso i collegamenti che presentano il question-hyperlink della classe.

  • Stampa il testo di ogni link con .text() e il href del link con attr("abs:href") . In questo caso, usiamo abs: per ottenere l'URL assoluto , es. con il dominio e il protocollo inclusi.