Fred le ouf Posté(e) le 25 octobre 2016 Signaler Posté(e) le 25 octobre 2016 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
Steven Posté(e) le 31 octobre 2016 Signaler Posté(e) le 31 octobre 2016 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)
Fred le ouf Posté(e) le 1 novembre 2016 Auteur Signaler Posté(e) le 1 novembre 2016 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 1
Messages recommandés