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):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 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 .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):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 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 .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.