Bonjour,
Afin de cibler le projet, voici quelques informations; J'ai développé un boitier se trouvant à l’extérieur qui récupère des informations en temps réel (par exemple, la température, tension batterie, etc..) puis transmet ces données à un boitier connecté au réseaux. Le boitier permet de mettre à disposition ces informations sur une petite page html actualisée toutes les secondes. Jusqu'ici, tout fonctionne.
Maintenant, je souhaiterais récupérer ces informations toutes les minutes à l'aide d'un petit script python tournant en tache de fond.
Le problème que je rencontre: Je parviens à récupéré la chaine de caractère de la page html par différents moyens (urllib/socket) mais les variables (températures etc..) ne sont pas affichées. J'obtiens une chaine de type "<td>Temps</td><td><script>document.write(Tps)</script>". Sur la page Html, la variable "document.write(Tps)" affiche par exemple "18", mais je n'arrive pas trouver la solution pour obtenir ces valeurs dans mon string récupéré via python.
Ex de code:
Ce qu'il me renvoi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 # -*- coding: cp1252 -*- import webbrowser import urllib import time import os import HTMLParser from HTMLParser import HTMLParser # create a subclass and override the handler methods class MyHTMLParser(HTMLParser): def handle_data(self, data): print data # instantiate the parser and fed it some HTML parser = MyHTMLParser() IP = 'http://172.26.4.1' print ('Récupération ' + IP) page=urllib.urlopen(IP) strpage=page. read() page.close() parser.feed(strpage)
Ma question: Avez-vous une idée/solution pour récupérer les valeurs contenus dans les variables "document.write(xx)" de la page?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Récupération http://172.26.4.1 Recharger - (automatique) Requetes http = document.write(REQ) Informations Cycles A document.write(CyA) Cycles B document.write(CyB) Defauts document.write(Def) Fuel (L) document.write(Fue) Temps document.write(Tps) Etat syst document.write(Eta) Defaut statut str="";for(i=0;i<8;i++){str+="<tr><td bgcolor=pink>Defaut #"+i+"</td>";if(defAffich&(1<<i)){str+="<td bgcolor=red>Err";}else {str+="<td bgcolor=green>OK";}str+="</td></tr>";}document.write(str) ;
Merci pour votre aide.
Partager