Programación

HTML parser con JSOUP en Java

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.

Salir de la versión móvil