IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Parser HTML : récupérer le contenu de balises spécifiques


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Par défaut Parser HTML : récupérer le contenu de balises spécifiques
    Bonjour à toutes et à tous !
    Je souhaite récupérer le contenu d'un fichier html; pour cela, j'ai pensé utiliser html parser (http://htmlparser.sourceforge.net/). Mais les exemples fournis et la javadoc sont bien obscurs pour moi, pauvre débutant.
    Ce que je souhaite faire c'est :
    --> extraire tous les éléments en gras (entre balises <b> et </b>)
    --> extraire le titre du document (balises <title>)

    Mes questions sont les suivantes :
    - est-ce faisable ?
    -une piste ? (claire ;0) )

    Merci d'avance !

    Gérald

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 171
    Par défaut
    oui s'est bien fesable a l'aide des expressions regulier, il y a tout un cours a suivre la deçus, si tu veux bien les metriser il faut suivre un cours de compilation.

  3. #3
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Essaie avec NekoHTML. Je te conseille de faire une recherche là dessus sur developpez.net, cela pourra t'aider à te faire une opinion.

  4. #4
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Si tu veux juste simplement extraire tout ce qu'il y a contenu entre deux balises, pas la peine de recourir a un parseur, les expressions régulières suffisent amplement : lien javadoc

    Par exemple pour extraire le titre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String getTitle(String html){
         Pattern p = Pattern.compile("<title>(.*)</title>");
         Matcher m = p.matcher(html);
         if (m.matches()) return m.group(1);
         else return null;
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut
    Bonjour,

    J'ai essayé ton code mais ça n'a pas marché : il me retourne toujours rien.
    Voici mon code, en fait je voudrai récupérer un message qui est délimité par une balise "span".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Pattern p = Pattern.compile("<span class=\"uFDiv3\">(.*)</span>");
    Matcher m = p.matcher("http://some-url");
    	     if (m.matches()) 
    	    	 System.out.println("le contenu est : " + m.group(1));//.group(1));
    	     else System.out.println("le contenu est vide");
    Le message affiché sous la console est toujours "le contenu est vide", par contre je vérifie l'url et je trouve de contenu. Je ne sais pas pourquoi il me fait ça.

    Merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
         Pattern p = Pattern.compile("<title>(.*)</title>");
         Matcher m = p.matcher(html);
         if (m.matches()) return m.group(1);
         else return null;

  6. #6
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Dans le code que tu poste tu cherche le texte entre les balise dans la chaine de caractères "http://some-url" qui bien évidement ne contient pas ces balises.

    Si j'ai bien compris tu voudrais chercher dans la page à l'adresse "http://some-url"? Dans ce cas la il te faut la charge auparavant via openConnection() de la classe URL.

Discussions similaires

  1. Récupérer le contenu entre deux balises même les tags html
    Par asbb.asbb dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 26/02/2015, 15h23
  2. récupérer le contenu des balise <script>
    Par GoldenEyes dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/06/2008, 13h08
  3. Réponses: 2
    Dernier message: 04/06/2007, 13h57
  4. [Tableaux] Récupérer le contenu d'une balise HTML
    Par StarNab dans le forum Langage
    Réponses: 2
    Dernier message: 01/09/2006, 12h38
  5. [HTML] affichage du contenu des balises 'alt' dans une iframe
    Par etarip dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 11/08/2005, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo