from html.parser import HTMLParser import json #Classe Pour extraire les données historique class MyHTMLParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) self.recording = 0 self.data = [] def handle_starttag(self, tag, attrs): if attrs == [('class', 'c-table c-table--generic c-table--generic c-shadow-overflow__table-fixed-column'), ('data-table-sorter', None)]: self.recording=1 def handle_endtag(self, tag): if tag =="table": self.recording=0 def handle_data(self, data): if self.recording: tmp=data.replace(" ","") tmp=tmp.replace("\n","") if tmp!='': self.data.append(tmp) def struct(self): dic = {} i=11; dic["1semaine"]=self.data[i:i+3] i+=4 dic["1mois"]=self.data[i:i+3] i+=4 dic["3mois"]=self.data[i:i+3] i+=4 dic["6mois"]=self.data[i:i+3] i+=4 dic["1an"]=self.data[i:i+3] i+=4 dic["3ans"]=self.data[i:i+3] i+=4 dic["5ans"]=self.data[i:i+3] i+=4 dic["10ans"]=self.data[i:i+3] i+=4 dic["MM20"]=self.data[i] i+=1 dic["MM50"]=self.data[i] i+=1 dic["MM100"]=self.data[i] i+=1 dic["RSI14"]=self.data[i] i+=1 return dic def getData(self): return self.data #Fonction pour extraire les donnée du graphique journalier def Daily(self,html): l1=html.find("var chart") #On cherche le debuy du JSON du graph l2=html.find("chart.data.amChartData);") # On cherche la fin du JSON du graph data=html[l1+29:l2+32-276] # A améliorrer ??? data = json.loads(data) # On charge le Json idf = data["data"]["amChartConfig"]["graphs"][0]["id"]# On recupere l'identifiant du graphique data=data["data"]["amChartData"][idf]#On extrait du Json les valeurs du graph dic={} for i in data : #Pour chaque valeurs de la journée on met dans le dictionnaire heu = i["period"] val = i["value"] dic[heu]=val return dic