Publié le 12/05/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
4 commentaires

Ouvrir une URL et charger son contenu au format texte

Pour charger le code source d'une page HTML, le langage JAVA propose plusieurs packages autour de la communication réseau. Dans cet article, nous utilisons l'objet URLConnection permettant d'ouvrir une URL et charger son contenu.

Charger une page HTML avec JAVA

Voici un exemple d'utilisation, les redirections y compris les pages 301 sont traitées automatiquement par la class URLConnection. Le contenu de la page HTML est récupéré dans une variable String au moyen d'un StringBuilder.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 * Charger une page HTML
 * http://www.fobec.com/java/908/ouvrir-une-url-charger-son-contenu-format-texte.html
 */
 
public class HTTPLoader {
/**
 * Open a url and read text data, for example html file
 * @param _url url
 * @return String file content
 */
    public static String getTextFile(String _url) {
        BufferedReader reader = null;
        try {
            URL url = new URL(_url);
            URLConnection urlConnection = url.openConnection();
            reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line);
                sb.append("\n");
            }
            return sb.toString();
        } catch (IOException ex) {
            Logger.getLogger(HTTPLoader.class.getName()).log(Level.SEVERE, null, ex);
            return "";
        } finally {
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException ex) {
                Logger.getLogger(HTTPLoader.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
} 

Charger l'URL de la page index

Pour illustrer le chargement du code source, voyons comment obtenir le code source la page index du site Fobec.com.

System.out.print(HTTPLoader.getTextFile("http://fobec.com/"))

Pour charger une URL, une autre méthode consiste à utiliser directement les sockets en JAVA. Dans ce cas, il faudrait gérer soi-même les codes HTTP par exemple les redirections et les erreurs de communication réseau.

Ajouter un commentaire

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

Publié par Tom

le 04/05/2011 à 17:28:13

Hello!
Cependant, mon Eclipse ne reconnait pas HttpLoader comme type valide...
Comment faire pour que ca marche?
Merci d'avance pour ton aide!
@+

avatar Fobec

Publié par Fobec

le 04/05/2011 à 18:01:53

oups quelques lignes manquent sur ce code ! ... l'exemple est corrige et complet
Merci Tom

avatar Verkork

Publié par Verkork

le 01/06/2011 à 00:03:14

Le probleme c'est que ce code ne convient pas quand une partie de la page est dynamique, ie qu'elle est rafraichit toutes les minutes par exemple. Par exemple pour une telle page, c'est plus compliquee: [modere]

avatar skud

Publié par skud

le 04/11/2011 à 17:16:14

La methode getTextFile() etant statique, il faut donc l'appeler de maniere statique. Modifier l'exemple de la maniere suivante

System.out.print(HTTPLoader.getTextFile('http://fobec.com/CMS/index.php'));

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
12/05/2010
Visualisation
vu 4383 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 261 articles
|BIO_PSEUDO|
Commentaires récents

Publié par dieteticien-lyon dans CMS

Il existe aussi programme-dietetique.com qui est pas mal et au niveau fonctionnalité

Publié par brayan dans logiciel

je vous retour modem ip pour configury net firwell

Publié par Axel dans java

L'astuce de la conversion en gris se situe dans imagedst.
Le BufferedImage imagesrc contient l'image en couleur, imagedst est une image cree en nuance de gris. Lorsque l'on copie l'image colorisee...

Publié par Fobec dans logiciel

prise en charge du format ipV6. L'api est compatible avec tous les ip qu'elles soient au format ipV4 ou ipV6.

Publié par berrr dans news

Le PageRank de mon site www.specialvacances.com et toujours 0 pourquoi !