Aller au contenu

Recherche Un Parser Html


Fred le ouf

Messages recommandés

Bonjour à  tous,

 

je suis à  la recherche d'un parser HTML pour récupérer le contenu d'une page HTML.

En fait, j'ai un appareil qui me retourne une production solaire dans une page HTML.

 

Le code source HTML de la page est le suivant :

<h2>Statistiques du système</h2>
<table>
<tr><td>Cumul Production</td> <td> 4,10 MWh</td></tr><tr><td>Production instantanée</td> <td> 24,0 W</td></tr>
<tr><td>Dernière connexion au site Internet</td>
<td><div class=good> 4 minutes</div></td></tr>
<tr><td>Nombre de micro-onduleurs</td>
<td>8</td></tr>
<tr><td>Nombre de micro-onduleurs en ligne</td>
<td>0</td></tr>
<tr><td>Version du logiciel</td>
<td>R3.11.30 (0c976a)</td></tr>
<tr><td>Date de version logicielle</td>
<td>mar oct 07, 2014 02:48 Après-midi PDT </td></tr>
<tr><td>Taille de la base de données</td>
<td>17 MB (4 % plein)</td></tr>
<tr><td>Caractéristiques CPL</td><td>480-00008-r01-v02.0a.19</td></tr>

et je cherche à  récupérer la production instantanée ainsi que ne nombre d'onduleurs en ligne (en gras dans le code source).

 

Est-ce que l'un de vous aurait une idée sur comment faire ?

 

Merci d'avance ;)

Lien vers le commentaire
Partager sur d’autres sites

Tu peux faire ainsi. C'est pas le top, mais cela fonctionne :

local result = "<h2>Statistiques du système</h2><table><tr><td>Cumul Production</td> <td> 4,10 MWh</td></tr><tr><td>Production instantanée</td> <td> 24,0 W</td></tr><tr><td>Dernière connexion au site Internet</td><td><div class=good> 4 minutes</div></td></tr><tr><td>Nombre de micro-onduleurs</td><td>8</td></tr><tr><td>Nombre de micro-onduleurs en ligne</td><td>0</td></tr><tr><td>Version du logiciel</td><td>R3.11.30 (0c976a)</td></tr><tr><td>Date de version logicielle</td><td>mar oct 07, 2014 02:48 Après-midi PDT </td></tr><tr><td>Taille de la base de données</td><td>17 MB (4 % plein)</td></tr><tr><td>Caractéristiques CPL</td><td>480-00008-r01-v02.0a.19</td></tr>"

local production = -1
local modules = -1

for w in string.gmatch(result, "Production instantanée(.*)/tr") do production = string.match(w, "(%d+)") end
for w in string.gmatch(result, "Nombre de micro.?onduleurs en ligne(.*)/tr") do modules = string.match(w, "(%d)") end

print(production)
print(modules)

Lien vers le commentaire
Partager sur d’autres sites

merci beaucoup de ton retour Steven ;)

 

bon maintenant je vais essayer de comprendre les patterns car ca me semble puissant.

 

Edit

 

très bonnes explications des patterns en francais à  l'adresse suivante

 

http://wxlua.free.fr/Tutoriel_Lua/Tuto/Strings/strings6.php

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...