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

avec Java Discussion :

JSoup bloquée avec les balises


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 17
    Points
    17
    Par défaut JSoup bloquée avec les balises
    Bonjour à tous,

    Je suis en train d'essayer de parser un site.
    Mon but serait d'avoir uniquement le texte " - 4 belles escalopes de poulet(700 g)" qui s'affiche.

    Pour le moment mon code me permet d'obtenir la ligne entière :

    "Ingrédients (pour 6 personnes) : - 4 belles escalopes de poulet(700 g) - 1 gros oignon - 2 ou 3 échalotes - 400 g de nouilles chinoises - 1 bocal de légumes pour nouilles chinoises 175g (poivron rouge et vert, carotte, pousse de bambou, champignon noir) - 1 bocal salade chinoise 175 g (pousse de soja, carotte, chou blanc, épis de mais) - 4 cuillères à soupe d'huile - paprika, poivre et sel - 5 à 10 cl de sauce soja"

    Et mon code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    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 main
    {
        public static void main(String[] args) throws IOException
        {
            Document doc = Jsoup.connect("http://www.marmiton.org/recettes/recette_wok-de-poulet-au-nouilles-chinoises_69338.aspx").get();
            Elements newsHeadlines = doc.getElementsByClass("m_content_recette_ingredients");
            Element elem = newsHeadlines.get(0);
     
     
            String elem2 = elem.text();
            System.out.println(elem2);
            }
    }
    Si quelqu’un a une suggestion ce serait très simpa,
    merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Vu le code du site
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <p class="m_content_recette_ingredients">
    <span>Ingrédients (pour 6 personnes) :</span>
    - 4 belles escalopes de poulet(700 g)
    <br>
    - 1 gros oignon
    <br>
    - 2 ou 3 échalotes
    <br>
    - 400 g de nouilles chinoises
    <br>
    - 1 bocal de légumes pour nouilles chinoises 175g (poivron rouge et vert, carotte, pousse de bambou, champignon noir)
    <br>
    - 1 bocal salade chinoise 175 g (pousse de soja, carotte, chou blanc, épis de mais)
    <br>
    - 4 cuillères à soupe d'huile
    <br>
    - paprika, poivre et sel
    <br>
    - 5 à 10 cl de sauce soja
    <br>
    <br>
    </p>

    Tu peux de baser sur le fait que ton m_content_recette_ingredients a la forme:

    #text
    span
    #text
    br
    #text
    br

    pour récupérer le noeud qui se trouve juste après le span. Element.text() applatit tout, ce qui n'est pas ce dont tu as besoin. elem dans ton code est une noeud, utilise le pour parcourir l'arbre qui se trouve en dessous.

  3. #3
    Membre actif Avatar de hbennou
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 162
    Points : 205
    Points
    205
    Par défaut
    Bonjour,

    Voici un bout de code qui te permets de remplir une arrayList dans le premier element il y 'a le nom de la recette et dans les autres il y a les ingrédients:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    	int indexTiret=0;
    	int indexCompteur=0;
     
    	public ArrayList<String> addIngredients(String elem2){
    	ArrayList<String> arrIngredients = new ArrayList<String>();
    	while(indexCompteur<= elem2.length()){
    		if (indexCompteur!=elem2.length() && elem2.charAt(indexCompteur)== '-'){
    			arrIngredients.add(elem2.substring(indexTiret, indexCompteur));
    			indexTiret= indexCompteur+ 2;
    		}
    		//traiter le dernier ingrédient
    		if (indexCompteur== elem2.length()){
    			arrIngredients.add(elem2.substring(indexTiret, indexCompteur));
    		}
     
    		indexCompteur++;
    	}
    	return arrIngredients;
     
    	}

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 17
    Points
    17
    Par défaut Merciii
    C'est exactement la réponse que je cherchais sur les sites. Je n'avais pas compris le fond en fait, merci beaucoup !!

    J'ai avancé et mon programme tourne bien. Cependant je ne trouve pas sur internet une solution. En effet, j'aimerais parser plusieurs pages d'un même site.
    Mon code commence par :

    Document doc=Jsoup.connect("http://lesiteenquestion/rubrique/"...."+code").get();

    Elements newsHeadlines = doc.getElementsByClass("...");

    Je vais donc faire une boucle afin que le code du lien tourne mais comment adapter le "trou "...." dans le lien de mon site sachant que je ne peux pas le prévoir et que son contenu change pour chaque code.

    Merci d'avance pour votre aide

Discussions similaires

  1. problème avec les balises php
    Par Mydriaze dans le forum Langage
    Réponses: 2
    Dernier message: 15/06/2007, 12h09
  2. bloqué avec les chaines de caracteres
    Par elamarti dans le forum C
    Réponses: 2
    Dernier message: 23/02/2007, 14h18
  3. [DOM] Pb avec les "BALISE vide"
    Par PhalconX dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 18/06/2005, 22h16

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