jsoup analyseur HTML hello world exemples

jsoup HTML parser hello world exemples

html parser

Jsoup, un analyseur HTML, sa syntaxe de sélecteur «jquery-like» et «regex» est très facile à utiliser et suffisamment flexible pour obtenir ce que vous voulez. Voici trois exemples pour vous montrer comment utiliser Jsoup pour obtenir des liens, des images, le titre de la page et le contenu de l'élément "div" d'une page HTML.

Download jsoup
Le jsoup est disponible dans le référentiel central Maven. Pour les utilisateurs non Maven, téléchargez-le simplement à partir dejsoup website.

pom.xml

        
            org.jsoup
            jsoup
            1.10.2
        

Cet exemple vous montre comment utiliser jsoup pour obtenir le titre de la page et récupère tous les liens de "google.com".

HTMLParserExample1.java

package com.example;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;

public class HTMLParserExample1 {

    public static void main(String[] args) {

        Document doc;
        try {

            // need http protocol
            doc = Jsoup.connect("http://google.com").get();

            // get page title
            String title = doc.title();
            System.out.println("title : " + title);

            // get all links
            Elements links = doc.select("a[href]");
            for (Element link : links) {

                // get the value from href attribute
                System.out.println("\nlink : " + link.attr("href"));
                System.out.println("text : " + link.text());

            }

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

Sortie

title : Google

link : http://www.google.com.my/imghp?hl=en&tab=wi
text : Images

link : http://maps.google.com.my/maps?hl=en&tab=wl
text : Maps

//omitted for readability

Note
Il est recommandé de spécifier un "userAgent" dans Jsoup, pour éviter les messages d'erreur HTTP 403.

    Document doc = Jsoup.connect("http://anyurl.com")
    .userAgent("Mozilla")
    .get();

2. Saisit toutes les images

Le deuxième exemple vous montre comment utiliser le sélecteur d'expressions régulières Jsoup pour récupérer tous les fichiers image (png, jpg, gif) de «yahoo.com».

HTMLParserExample2.java

package com.example;

package com.example;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;

public class HTMLParserExample2 {

    public static void main(String[] args) {

        Document doc;
        try {

            //get all images
            doc = Jsoup.connect("http://yahoo.com").get();
            Elements images = doc.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();
        }

    }

}

Sortie

src : http://l.yimg.com/a/i/mntl/ww/events/p.gif
height : 50
width : 202
alt : Yahoo!

src : http://l.yimg.com/a/i/ww/met/intl_flag_icons/20111011/my_flag.gif
height :
width :
alt :

//omitted for readability

3. Obtenez des éléments Meta

Le dernier exemple simule une page HTML hors ligne et utilise jsoup pour analyser le contenu. Il saisit le mot-clé et la description «meta», ainsi que l'élément div avec l'id de «color».

HTMLParserExample3.java

package com.example;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class HTMLParserExample3 {

    public static void main(String[] args) {

        StringBuffer html = new StringBuffer();

        html.append("");
        html.append("");
        html.append("");
        html.append("");
        html.append("Hollywood Life");
        html.append("");
        html.append("");
        html.append("");
        html.append("");
        html.append("
This is red
/>"); html.append(""); html.append(""); Document doc = Jsoup.parse(html.toString()); //get meta description content String description = doc.select("meta[name=description]").get(0).attr("content"); System.out.println("Meta description : " + description); //get meta keyword content String keywords = doc.select("meta[name=keywords]").first().attr("content"); System.out.println("Meta keyword : " + keywords); String color1 = doc.getElementById("color").text(); String color2 = doc.select("div#color").get(0).text(); System.out.println(color1); System.out.println(color2); } }

Sortie

Meta description : The latest entertainment news
Meta keyword : hollywood gossip, hollywood news
This is red
This is red

4. Saisit les entrées du formulaire

Ces extraits de code vous montrent comment utiliser Jsoup pour récupérer des entrées de formulaire HTML (nom et valeur). Pour plus de détails sur l'utilisation, veuillez vous référer à ceautomate login a website with Java.

public void getFormParams(String html){

    Document doc = Jsoup.parse(html);

    //HTML form id
    Element loginform = doc.getElementById("your_form_id");

    Elements inputElements = loginform.getElementsByTag("input");

    List paramList = new ArrayList();
    for (Element inputElement : inputElements) {
        String key = inputElement.attr("name");
        String value = inputElement.attr("value");
    }

}

5. Obtenir l'icône Fav

Ce code vous montre comment utiliser Jsoup pour l'icône préférée de la page.

jSoupExample.java

package com.example;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class jSoupExample {

    public static void main(String[] args) {

    StringBuffer html = new StringBuffer();

    html.append("");
    html.append("");
    html.append("");
    //html.append("");
    html.append("");
    html.append("");
    html.append("something");
    html.append("");
    html.append("");

    Document doc = Jsoup.parse(html.toString());

    String fav = "";

    Element element = doc.head().select("link[href~=.*\\.(ico|png)]").first();
    if(element==null){

        element = doc.head().select("meta[itemprop=image]").first();
        if(element!=null){
            fav = element.attr("content");
        }
    }else{
        fav = element.attr("href");
    }
    System.out.println(fav);
  }

}

Sortie

http://example.com/image.ico