Jsoup Extrae las URL y títulos de los enlaces.


Ejemplo

Jsoup se puede utilizar para extraer fácilmente todos los enlaces de una página web. En este caso, podemos usar Jsoup para extraer solo los enlaces específicos que queremos, aquí, los de un encabezado h3 en una página. También podemos obtener el texto de los enlaces.

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();
}

Esto da el siguiente resultado:

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?

[...]

Que esta pasando aqui:

  • Primero, obtenemos el documento HTML de la URL especificada. Este código también establece el encabezado del Agente de usuario de la solicitud en "Mozilla", de modo que el sitio web sirva la página que usualmente serviría a los navegadores.

  • Luego, use select(...) y un bucle for para obtener todos los enlaces a las preguntas de desbordamiento de pila, en este caso los enlaces que tienen el question-hyperlink clase.

  • Imprima el texto de cada enlace con .text() y el href del enlace con attr("abs:href") . En este caso, usamos abs: para obtener la URL absoluta , es decir. Con el dominio y protocolo incluidos.