Publié le 10/09/2010
Auteur Axel
Réseaux sociaux
0 partages
0 tweets
0 plus
1 commentaires

Charger et extraire les liens d'une page HTML

Comment trouver les liens dans une page HTML ou du point de vue technique comment extraire le texte contenu entre les balises href ? Voici une solution qui utilise l'objet HTMLEditorKit de JAVA qui va parcourir la page internet et retourner une liste de lien.

Lister les liens d'une page internet

Pour lister les liens sur la balise href, nous allons utiliser les méthodes suivantes:
- charger une page HTML avec URLConnection,
- lire le document dans HTMLEditorKit,
- parcourir les balises pour extraire les liens.
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.net.URLConnection;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.text.BadLocationException;
import javax.swing.text.EditorKit;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.html.HTML;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;
 
/**
 * Extraire les liens d'un document HTML
 */
public class LinkExtract {
 
    public static void main(String[] args) {
        try {
            //Charger la page
            URL url = new URL("http://www.fobec.com");
            URLConnection uconnection = url.openConnection();
            Reader rd = new InputStreamReader(uconnection.getInputStream());
            //lire le document HTML
            EditorKit kit = new HTMLEditorKit();
            HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
            doc.putProperty("IgnoreCharsetDirective", new Boolean(true));
            kit.read(rd, doc, 0);
            //Parcourir la balise lien
            HTMLDocument.Iterator it = doc.getIterator(HTML.Tag.A);
            while (it.isValid()) {
                SimpleAttributeSet s = (SimpleAttributeSet) it.getAttributes();
                String link = (String) s.getAttribute(HTML.Attribute.HREF);
                if (link != null) {
                    //Afficher le lien trouvé
                    System.out.println(link);
                }
                it.next();
            }
        } catch (BadLocationException ex) {
            Logger.getLogger(LinkExtract.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(LinkExtract.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

Pour l'exemple, les liens sont simplement affichés dans la console JAVA. A l'execution de la class LinkExtract, on obtient les liens trouvés sur la page d'accueil
http://www.fobec.com
http://www.fobec.com/apps/
http://www.fobec.com/forum/
http://www.fobec.com/news/
http://www.fobec.com/delphi/
http://www.fobec.com/java/
http://www.fobec.com/php5/
http://www.fobec.com/tuto/
http://www.fobec.com/logiciel/
javascript:void(0)
...

Attention: l'url à analyser a été définit en dur à la ligne 29. Pour que l'exemple fonctionne, veuillez la remplacer par l'URL de la page dont on veut extraire les liens.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.
avatar mido

Publié par mido

le 12/07/2012 à 21:27:32

si je veut extraire les liens a partir de google searche c'est a dire utiliser la raquette suivante "http://www.google.tn/search?q=" avec java bien sur ..merci d'avance :)

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
10/09/2010
Visualisation
vu 2682 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par RIJAPOTAK dans CMS

PILOTAGE SCANNER (TWAIN-WIA), IPTC, EXIF, METADATA, ICC PROFILES, Développement des logiciels, Traitement d'image, Traitement en Batch d'image et Pdf

Publié par Josalado dans CMS

je n'arrive pas à installer le logiciel <br>Message d'erreur : l'assistant d'installation n'a pas pu créer le dossier C:\program Files\Olibul <br>...

Publié par Bonjour dans java

Joli travail!
Par contre, savez vous que votre barre de progression s'arrête à un certain pourcentage?

Publié par hungerGames dans php5

Salut!
je suis un debutant en php,et lorsque j'ai execute le code
sur la creation de la base 'member',on m'a affiche cet message:
"Undefined class constant 'ATT_ERRMOD...

Publié par angelofchaos dans java

Marche très bien , merci beaucoup :)