Aller au contenu

Messages recommandés

Posté(e)

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 ;)

Posté(e)

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)

×
×
  • Créer...