JSoup es un Parser Java para HTML, uno de los más sencillos que he probado, pero eso no le quita el mérito de ser una librería útil y poderosa.
Utilizo también esta librería para crear aplicaciones Android y funciona sin problemas.-
Ejemplo 1 (Traer links, descripción, título, artículos entre otros de una web):
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class HTMLParserExample1 {
public static void main(String[] args) {
Document doc;
try {
// necesitará protocolo http
doc = Jsoup.connect("http://www.stilogames.com.py/")
.userAgent("Mozilla")
.get();
// traer y mostrar el título, descripcion y keyword
String title = doc.title();
String desc = doc.select("meta[name=description]").first().attr("content");
String keyword = doc.select("meta[name=keywords]").first().attr("content");
System.out.println("title : " + title);
System.out.println("Descripción del sitio: " + desc);
System.out.println("Keywords: " + keyword);
// traer los links
Elements links = doc.select("a[href]");
for (Element link : links) {
// imprimirlos
System.out.println("\nlink : " + link.attr("href"));
System.out.println("texto : " + link.text());
}
//Traer el último elemento dentro de el div pagination
Element links2 = doc.select("div[class=pagination]").first();
Element linkText2 = links2.getElementsByTag("a").last();
System.out.println(linkText2.text());
//Traer los últimos artículos
Elements articulos1 = doc.select("div[class=span8 clearfix]");
Elements articulos2 = articulos1.select("h1");
Elements articulos3 = articulos2.select("a");
for (Element link : articulos3) {
// imprimirlos
System.out.println("link : " + link.attr("href"));
System.out.println("titulo : " + link.attr("title"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Ejemplo 2 (Traer imagenes de una web):
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class HTMLParserExample2 {
public static void main(String[] args) {
Document doc2;
try {
//obtener todas las imágenes
doc2 = Jsoup.connect("http://www.tecnologia.com.py/")
.userAgent("Mozilla")
.get();
Elements images = doc2.select("img[src~=(?i)\\.(png|jpe?g|gif)]");
for (Element image : images) {
System.out.println("\nsrc : " + image.attr("src"));
System.out.println("height : " + image.attr("height"));
System.out.println("width : " + image.attr("width"));
System.out.println("alt : " + image.attr("alt"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
Nota: Deben de descargar e importar la librería JSOUP a su proyecto JAVA.
