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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    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>

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