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

Moteurs Web Discussion :

Analyser du code HTML


Sujet :

Moteurs Web

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Analyser du code HTML
    Bonjour,

    Je souhaiterais parser une page web pour récupérer des données dessus. Or, je crois qu'il n'y a pas de xml dans le code de cette page. Avez vous une méthode ou une librarie à me conseiller ? Faut-il convertir le HTML en xml puis parser ou bien parser directement le HTML ?

    Il est à noter que les informations qui m'interessent sont toutes dans des tableaux.

    Quelqu'un a t-il déja utilisé ça ? : C++ HTML parser for QT, sachant que Qt sera déja présent dans mon projet pour la partie IHM.

    Quid de Tidy ? J'arrive pas à savoir si ça permet de faire uniquement de la conversion/vérification ou si les données parsées sont exploitables autrement.

    J'ai également cru comprendre que l'on pouvait parser à l'aide de gecko, le poteur de firefox. Pour ne pas alourdir l'application inutilement je me suis penché du coté de wekbit, intégré à qt. Est-il limité à l'affichage ou bien permet-il de récuperer les tableaux dans des variables par exemple ?

    Merci

  2. #2
    screetch
    Invité(e)
    Par défaut
    ca pourrait etre plus simple de lire le texte et de garder seulement ce qui est entre <table></table>
    une forme tres simple de parser et qui a l'avantage de resister au code HTML mal formé

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Oui mais comment faire ? A l'aide d'expressions régulières ou avec une librairie spécialisée ? En effet il ya plein de balises supplémentaires entre les <table></table>

  4. #4
    screetch
    Invité(e)
    Par défaut
    qu'est ce que tu appelles plein ? a l'interieur tu dois trouver des <tr> et des <td> a peu de choses pres.
    Ca depend de ce que tu souhaites extraire comme contenu. Et comment tu comptes le reformatter

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Exemple de code :

    <TR BGCOLOR="#EEEEF1">
    <TD WIDTH="70" rowspan=10 VALIGN="MIDDLE"><A class="bld" HREF="pos-4.8E.php">4.8&deg;E</a></TD>
    <TD rowspan=10 WIDTH="50" ALIGN="CENTER" VALIGN="MIDDLE">&nbsp</TD>
    <TD rowspan=10 WIDTH="50" ALIGN="CENTER" VALIGN="MIDDLE">&nbsp</TD>
    <TD rowspan=10 WIDTH="30" ALIGN="CENTER" VALIGN="MIDDLE"><a href="news4.8E.php"><img src="/news.gif" border=0></a></td>
    <TD rowspan=10 WIDTH="20"><a href="dl.php?pos=4.8E&fkhz=0"><img src="/disquette.gif" width="19" height="14" border=0></a></TD>
    <TD rowspan=10 WIDTH="50" ALIGN="CENTER" VALIGN="MIDDLE"><a class="bld" href="pos-4.8E.php">697</a></TD>
    <TD rowspan=10 WIDTH="50" ALIGN="CENTER" VALIGN="MIDDLE"><a class="bld" href="pos-4.8E.php">0</a></TD>
    <TD rowspan=10 WIDTH="50" ALIGN="CENTER" VALIGN="MIDDLE"><a class="bld" href="pos-4.8E-fta.php">184</a></TD>
    <TD rowspan=10 WIDTH="50" ALIGN="CENTER" VALIGN="MIDDLE"><a class="bld" href="tv-4.8E.php">537</a></TD>
    <TD rowspan=10 WIDTH="50" ALIGN="CENTER" VALIGN="MIDDLE"><a class="bld" href="radio-4.8E.php">86</a></TD>
    <TD rowspan=10 WIDTH="40" ALIGN="CENTER" VALIGN="MIDDLE"><a class="bld" href="data-4.8E.php">74</a></TD>
    <TD WIDTH=120 bgcolor="#E6DFD1">Sirius 4</TD>
    <TD WIDTH="30" bgcolor="#E6DFD1" VALIGN="MIDDLE">0.05&deg;</TD>
    <TD WIDTH="50" ALIGN="CENTER" VALIGN="MIDDLE" bgcolor="#E6DFD1"><A class="bld" HREF="sat-sirius4.php">697</A></TD>
    <TD WIDTH="50" ALIGN="CENTER" VALIGN="MIDDLE" bgcolor="#E6DFD1"><A class="bld" HREF="sat-sirius4-fta.php">184</A></TD>
    <TD WIDTH="110" BGCOLOR="#FF5555" ALIGN="CENTER" VALIGN="MIDDLE">2009-11-22 14:21</TD></tr></table> <TABLE BORDER=0 ALIGN="CENTER" CELLPADDING=0 CELLSPACING=1 BGCOLOR="#000000" class="f">
    Je compte garder les informations textuelles et non leur mise en forme. Elle vont etre entrées dans une base sql.

    Merci

  6. #6
    screetch
    Invité(e)
    Par défaut
    si tu es sur de ce formattage alors ca doit pouvoir se faire sans une lib tres compliquée.
    tu as certaines garanties dont tu sembles pouvoir te servir.
    l'idée serat de trouver le <table> qui t'interesse (je ne sais pas, mais ca pourrait etre simplement tous les <table> de la page?)
    puis de supprimer tout jusqu'au prochain <tr> (nouvelle ligne)
    puis de tout sauter jusqu'au prochain <td> (nouvelle colone)
    et la degarder le contenu jusqu'au prochain </td>

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Ok, je vois. Je vais regarder du coté des Qregexp (mon programme utilise déja Qt)

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Si tu va utiliser Qt,
    tu devrais regarder ceci :
    http://qt.developpez.com/doc/4.6-snapshot/qwebelement/

    C'est une nouvelle fonctionnalité prévue pour la 4.6 qui devrais sortir bientôt. Cela permet de parcourir le DOM de la page html.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Le DOM n'est il pas restreint au XML ?

  10. #10
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Guilo Voir le message
    Le DOM n'est il pas restreint au XML ?
    Si je me trompe pas dans les définition, Le DOM c'est l'arbre de données. Le xml est une représentation et le html une autre. Le html est très proche du xml mais cela en est pas.

    Le lien que je t'ai données est une nouvelle fonctionnalité de Qt qui donne un accès au DOM de la page affiché. C'est une interface inspiré du jquery, il me semble. Il te permet normalement de le parcourir et de le modifier. Mais je n'ai pas encore testé.
    Regarde les exemple, voir si cela correspond bien à ton besoin :
    http://qt.developpez.com/doc/4.6-sna...amples-webkit/

Discussions similaires

  1. [RegEx] Analyse de code HTML d'une liste déroulante
    Par sigmoun dans le forum Langage
    Réponses: 7
    Dernier message: 19/08/2009, 13h57
  2. [RegEx] Analyser du code html
    Par Invité dans le forum Langage
    Réponses: 1
    Dernier message: 05/08/2009, 20h38
  3. [MySQL] Analyse de code HTML
    Par safari25 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/06/2009, 17h06
  4. Analyse de code HTML et simplification par l'XML
    Par Punky65250 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 10/11/2005, 10h24
  5. Analyse de code HTML en réponse a une requête post.
    Par ghost942 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/06/2005, 21h40

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