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 PHP Discussion :

Regex pour parser une page web


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Points : 38
    Points
    38
    Par défaut Regex pour parser une page web
    Bonjour,

    J'avoue me perdre un peu dans les regex...

    J'aimerais parser une page web et récupérer plusieurs éléments identifiables en fonction de leur emplacement dans la page.

    Par exemple, pour une même page, récupérer tout ce qui est contenu entre :

    et

    sachant qu'il y a un saut de ligne mais à priori sans espace entre alt> et </a>. alt> correspond à la fin d'un code html d'image (<img src="url" alt>)

    Ensuite, pour ce bloc de page récupérer, j'aimerais à nouveau au sein de ce bloc parser des éléments contenus entre certaines balises.

    Merci par avance pour votre aide !

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    y'a plein de sujets la dessus et tu me verras dire à chaque fois :
    pour parser du HTML c'est DOMDocument

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 122
    Points : 38
    Points
    38
    Par défaut
    ok pour le parsing, je vais regarder cela même si je ne capte pas grand chose...

    pour les regex, par contre, j'ai bien lu la doc ici (http://php.developpez.com/sources/?page=regexp) mais je ne comprends pas pourquoi ceci ne retourne rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $line=file_get_contents("monURL");
    $pattern = "#<strong>(.*)Lien#s";
    $titre = preg_match_all($pattern,$line,$regs);
    echo $regs[0];

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par cyberlp Voir le message
    je ne capte pas grand chose...
    Citation Envoyé par cyberlp Voir le message
    mais je ne comprends pas pourquoi ceci ne retourne rien
    quitte a pas comprendre autant faire les choses en plus propre et utilise DomDocument

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    y'a plein de sujets la dessus et tu me verras dire à chaque fois :
    pour parser du HTML c'est DOMDocument
    Tu le croiras ou pas mais j'ai lu ce fil rien que pour t'entendre dire que "pour parser du HTML c'est DOMDocument"
    T'as une touche spéciale sur ton clavier ?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Tu le croiras ou pas mais j'ai lu ce fil rien que pour t'entendre dire que "pour parser du HTML c'est DOMDocument"
    T'as une touche spéciale sur ton clavier ?
    vu l'heure du poste je me suis douté qu'on m'avait laissé la place

  7. #7
    Membre régulier
    Homme Profil pro
    conception et traitement de documents xhtml
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : conception et traitement de documents xhtml
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par cyberlp Voir le message
    ok pour le parsing, je vais regarder cela même si je ne capte pas grand chose...
    Comme je l'avais écrit en d'autres endroits, je prévois de réaliser un tuto spécifiquement orienté (x)html. Par contre, je ne pense pas pouvoir l'écrire en 2011.

    Citation Envoyé par stealth35 Voir le message
    tu me verras dire à chaque fois :
    pour parser du HTML c'est DOMDocument
    Pourquoi, Stealth, cette insistance par rapport au html ? Sans doute parce que la demande concernant html est plus fréquente que celle concernant des documents xml ?

    En fait, pour parser n'importe code de type xml, qu'il soit html ou non, il faut utiliser DOMDocument, qui est une approche nettement plus rigoureuse et plus riche que de parser par regex, ces dernières devant être réservées à la seule analyse des noeuds texte terminaux. (L'effort de mise à niveau est certes plus conséquent. Par contre, une fois qu'on a "capté", on ne peut plus s'en passer...)

  8. #8
    Membre régulier
    Homme Profil pro
    conception et traitement de documents xhtml
    Inscrit en
    Août 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : conception et traitement de documents xhtml
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2011
    Messages : 107
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par cyberlp Voir le message
    Par exemple, pour une même page, récupérer tout ce qui est contenu entre : et
    Je ne sais pas (encore ?) traiter en DOM ce type de besoin, lorsqu'il faut lire un contenu à cheval sur deux balises. Le contenu d'une balise, c'est $balise -> nodeValue. Mais là, comment faire ?

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Doc_xhtml Voir le message
    En fait, pour parser n'importe code de type xml, qu'il soit html ou non, il faut utiliser DOMDocument, qui est une approche nettement plus rigoureuse et plus riche que de parser par regex, ces dernières devant être réservées à la seule analyse des noeuds texte terminaux. (L'effort de mise à niveau est certes plus conséquent. Par contre, une fois qu'on a "capté", on ne peut plus s'en passer...)
    Suffit juste de savoir comment marche les regex et le DOM à la base, c'est du simple parcage de texte y'a pas de miracle

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/04/2009, 11h04
  2. cherche algo pour spliter une page web
    Par guiyomh dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 19/05/2008, 16h36
  3. JACOB pour visualiser une page web dans application
    Par pcouas dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 15/03/2008, 06h15
  4. [POO] Problème pour Parser une page XML
    Par Death83 dans le forum Langage
    Réponses: 18
    Dernier message: 29/08/2006, 10h15
  5. Javascript pour charger une page web depuis un menu déroulan
    Par tomguiss dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/10/2005, 08h58

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