Rapport de message :*
 

Re: procédure pour récupérer données web

Titre du sujet : Re: procédure pour récupérer données web
par guanain le 28/02/2019 14:36:52

Bonjour,

je suis conscient que ce sujet date mais il est je pense celui qui m'a aidé le plus jusqu'ici.

Pour faire simple, je travaille avec un outil qui génère des bilans d'analyses sous format HTML, en voici un exemple de la partie intéressante DOM :

 


<table class="identification" width="740" cellspacing="0">
<tbody><tr class="entete">
<th class="" colspan="4" rowspan="1"><span class="strong title_commentaire">Détection du défaut</span></th>
</tr>
<tr class="sous_entete">
<th class="">Nom de l'OMT</th>
<th class="res_mise_liaison">Résultat de la mise en liaison</th>
<th class="res_ild">Résultat(s) du/des détecteur(s) de défaut</th>
<th class="">Information(s) complémentaire(s)</th>
</tr>
<tr class="">
<td class="">138G</td>
<td class=""><span class="textVert">OK</span></td>
<td class="">-----</td>
<td class="">-----</td>
</tr>
<tr class="">
<td class="">050E</td>
<td class=""><span class="textVert">OK</span></td>
<td class="">-----</td>
<td class="">-----</td>
</tr>
<tr class="">
<td class="">084C</td>
<td class=""><span class="textRouge">KO : LIAISON OMT</span></td>
<td class="">-----</td>
<td class="">-----</td>
</tr>
</tbody></table>

<table class="identification" width="740" cellspacing="0">
<tbody><tr class="entete">
<th class="" colspan="7" rowspan="1">Séquence d'isolement</th>
</tr>
<tr class="sous_entete">
<th class="">Date Heure</th>
<th class="">Poste</th>
<th class="">PA OMT</th>
<th class="">Libellé</th>
<th class="">Manoeuvre</th>
<th class="" colspan="2" rowspan="1">Résultat</th>
</tr>
<tr class="">
<td class="">23/02/2019 23:16:35</td>
<td class="">IROU-PN</td>
<td class="">138G</td>
<td class="">INTER  1</td>
<td class="">TC OUV   </td>
<td class="" colspan="2" rowspan="1"><span class="textVert">OK</span></td>
</tr>
<tr class="">
<td class="">23/02/2019 23:17:02</td>
<td class="">IROU-PN</td>
<td class="">138G</td>
<td class="">INTER  1</td>
<td class="">OUV   </td>
<td class="" colspan="2" rowspan="1"><span class="textVert">OK</span></td>
</tr>
</tbody></table>
<table class="identification" width="740" cellspacing="0">
<tbody><tr class="entete">
<th class="bordure_table" colspan="1" rowspan="14" width="4%">P<br>O<br>C<br>H<br>E<br>&nbsp;<br>A<br>&nbsp;<br>R<br>E<br>P<br>R<br>E<br>N<br>D<br>R<br>E<br></th>
<th class="" colspan="3" rowspan="1">Encadrant(s)</th>
<th class="" colspan="3" rowspan="1">Information(s) Complémentaire(s)</th>
</tr>
<tr class="">
<td class="zone_nature" colspan="3" rowspan="1"><ul class="list_a_puce">
<li><img src="../images/puce.png" alt="->" width="14" height="14">  <a class="lienSitr" href="?type=0&amp;id=232.0.17156931.CT#lienSitr">IROU-PN 138G : Direction 138G</a></li>
<li><img src="../images/puce.png" alt="->" width="14" height="14">  <a class="lienSitr" href="?type=0&amp;id=220.0.14503575.CT#lienSitr">IROU-PN 084C : Direction 084C</a></li>
</ul>
</td>
<td class="zone_nature" colspan="3" rowspan="1"><span class="size_text_img"><strong class="">Puissance à reprendre : </strong>
585 kW</span><br><br>
<span class="size_text_img"><strong class="">Nombre de clients : </strong>
399</span><br><br>
<span class="size_text_img"><strong class="">Pas de présence producteur. </strong>
</span></td>
</tr>
<tr class="entete">
<th class="" colspan="6" rowspan="1">Plan(s) de reprise possible(s)</th>
</tr>
<tr class="">
<td class="celluce_contenant_table" colspan="6" rowspan="1"><table class="table_bouclage" width="" cellspacing="0">
<tbody><tr class="">
<td class="bouclage" colspan="1" rowspan="2"><strong class=""><a class="lienSitr" href="?type=0&amp;id=232.0.17278911.CT#lienSitr">15MURO</a> (IROU-PN)</strong>
<br>IROU-PN 084C<br>Direction <a class="lienSitr" href="?type=0&amp;id=220.0.14503575.CT#lienSitr">084C</a></td>
<td class="resultat" colspan="1" rowspan="2"><span class="textVert">OK</span></td>
<td class=""><strong class="">Priorité BERE : </strong>
1</td>
<td class=""><strong class="">Imax : </strong>
260 A <br><strong class="">Icalculé : </strong>
76 A</td>
<td class=""><strong class="">PNominaleTransfo : </strong>
36,0 MVA <br><strong class="">PRéelleTransfo : </strong>
8,829 MVA</td>
</tr>
<tr class="">
<td class="" colspan="3" rowspan="1"><ul class="list_a_puce_commentaire">
<li>  Les données renseignées sont insuffisantes pour le V2.</li>
</ul>
</td>
</tr>
</tbody></table>
</td>
</tr>
<tr class="entete">
<th class="" colspan="6" rowspan="1">Plan retenu</th>
</tr>
<tr class="">
<td class="important" colspan="3" rowspan="1"><span class="textVert"><a class="lienSitr" href="?type=0&amp;id=232.0.17278911.CT#lienSitr"><span class="textVert">15MURO</span></a> (IROU-PN) : <a class="lienSitr" href="?type=0&amp;id=220.0.14503575.CT#lienSitr"><span class="textVert">IROU-PN 084C - Direction 084C</span></a></span></td>
<td class="" colspan="3" rowspan="1"><ul class="list_a_puce">
<li><img src="../images/puce.png" alt="->" width="14" height="14">  Priorisation en fonction des contraintes du BERE.</li>
</ul>
</td>
</tr>
<tr class="entete">
<th class="" colspan="6" rowspan="1">Manoeuvre(s) pour la reprise</th>
</tr>
<tr class="sous_entete">
<th class="">Date Heure</th>
<th class="">Poste</th>
<th class="">Tranche</th>
<th class="">Libellé</th>
<th class="">Etat</th>
<th class="">Résultat</th>
</tr>
<tr class="">
<td class="">23/02/2019 23:17:08</td>
<td class="">IROU-PN</td>
<td class="">15MURO</td>
<td class="">MEHS RRL</td>
<td class="">TC HS    </td>
<td class=""><span class="textVert">OK</span></td>
</tr>
<tr class="">
<td class="">23/02/2019 23:17:08</td>
<td class="">IROU-PN</td>
<td class="">15MURO</td>
<td class="">MEHS RRL</td>
<td class="">HS    </td>
<td class=""><span class="textVert">OK</span></td>
</tr>
<tr class="">
<td class="">23/02/2019 23:17:08</td>
<td class="">IROU-PN</td>
<td class="">15MURO</td>
<td class="">MEHS RRL</td>
<td class="">TC HS    </td>
<td class=""><span class="textVert">OK</span></td>
</tr>
<tr class="">
<td class="">23/02/2019 23:17:08</td>
<td class="">IROU-PN</td>
<td class="">15MURO</td>
<td class="">MEHS RRL</td>
<td class="">HS    </td>
<td class=""><span class="textVert">OK</span></td>
</tr>
<tr class="">
<td class="">---</td>
<td class="">IROU-PN</td>
<td class="">084C</td>
<td class="">INTER  1</td>
<td class="">TC FER   </td>
<td class=""><span class="textRouge">KO : ANOMALIE TC</span></td>
</tr>
<tr class="">
<td class="">---</td>
<td class="">IROU-PN</td>
<td class="">084C</td>
<td class="">INTER  1</td>
<td class="">TC FER   </td>
<td class=""><span class="textRouge">KO : ANOMALIE TC</span></td>
</tr>
</tbody></table>    

 

(c'est très moche désolé... :/ )

 

Mon travail consiste à exploiter ces données et à en extraire à l'aide d'une macro vba (nous travaillons uniquement sur excel), les contenus des cases des tableaux dont le texte est en rouge (thermes surlignés en rouge dans le DOM).

Par exemple dans le tableau "Détection du défaut" j'ai seulement besoin d'extraire le "KO : LIAISON OMT" dans une cellule excel.

Je débute dans le langage vba et malgré des heures de lecture de pages d'aides sur internet je n'arrive pas à adapter des fonctions telles que split ou query. Ma première solution était une extraction complète du bilan d'analyse sur une feuille excel puis de retenir le texte de couleur rouge, mais tous les textes sont extraits en noir.

Je ne cherche pas à ce que le travail soit fait à ma place mais plutôt à essayer de comprendre comment je dois aborder le problème. Peut-être qu'en fin de compte je ne dois pas me pencher sur le critère "couleur" mais plutôt sur la chaine de caractère en elle-même lorsqu'elle contient "KO" mais je ne sais pas comment faire sur vba.

 

Merci pour votre aide et votre temps.

Cordialement,

François-Joseph.