Los administradores de TransicionEstructural no se responsabilizan de las opiniones vertidas por los usuarios del foro. Cada usuario asume la responsabilidad de los comentarios publicados.
0 Usuarios y 1 Visitante están viendo este tema.
TAE 22.06.2013 02:00 106 0 - TAE 22.06.2013 03:00 115 2 - TAE 22.06.2013 04:00 113 1 - TAE 22.06.2013 05:00 111 1 - TAE 22.06.2013 06:00 108 0 - TAE 22.06.2013 07:00 102 0 - TAE 22.06.2013 08:00 100 0 - TAE 22.06.2013 09:00 98 0 - TAE 22.06.2013 10:00 98 0 - TAE 22.06.2013 11:00 98 0 - TAE 22.06.2013 12:00 97 0 - TAE 22.06.2013 13:00 101 0 - ABO 20.06.2013 00:00 116 0 - ABO 20.06.2013 01:00 116 0 - ABO 20.06.2013 02:00 118 0 - ABO 20.06.2013 03:00 119 0 - ABO 20.06.2013 04:00 117 0 - ABO 20.06.2013 05:00 119 0 - ABO 20.06.2013 06:00 129 1 - ABO 20.06.2013 07:00 125 0 -
#!/usr/bin/env python# -*- coding: latin -*-import osclass Estaciones: def __init__(self): self.URL="https://www.naz.ch/en/aktuell/" self.Estaciones_Suizas=[("zeitverlauf_TAE.shtml","Aadorf / Tänikon TG"), ("zeitverlauf_ABO.shtml","Adelboden BE"), ("zeitverlauf_AIG.shtml","Aigle VD"), ("zeitverlauf_ALT.shtml","Altdorf UR"), ("zeitverlauf_BAS.shtml","Basel / Binningen BL"), ("zeitverlauf_BER.shtml","Bern / Zollikofen BE"), ("zeitverlauf_BEZ.shtml","Beznau AG"), ("zeitverlauf_BUS.shtml","Buchs / Aarau AG"), ("zeitverlauf_FRE.shtml","Bullet / La Frêtaz VD"), ("zeitverlauf_CHA.shtml","Chasseral BE"), ("zeitverlauf_CHU.shtml","Chur GR"), ("zeitverlauf_GSB.shtml","Col du Grand St-Bernhard VS"), ("zeitverlauf_DAV.shtml","Davos GR"), ("zeitverlauf_DIS.shtml","Disentis / Sedrun GR"), ("zeitverlauf_EGO.shtml","Egolzwil LU"), ("zeitverlauf_ENG.shtml","Engelberg OW"), ("zeitverlauf_FAH.shtml","Fahy / Boncourt JU"), ("zeitverlauf_GVE.shtml","Genève-Cointrin GE"), ("zeitverlauf_GLA.shtml","Glarus GL"), ("zeitverlauf_GOE.shtml","Gösgen SO"), ("zeitverlauf_GRE.shtml","Grenchen SO"), ("zeitverlauf_GUE.shtml","Gütsch ob Andermatt UR"), ("zeitverlauf_GUT.shtml","Güttingen TG"), ("zeitverlauf_HOE.shtml","Hörnli ZH"), ("zeitverlauf_JUN.shtml","Jungfraujoch VS"), ("zeitverlauf_CDF.shtml","La Chaux-de-Fonds NE"), ("zeitverlauf_DOL.shtml","La Dôle VD"), ("zeitverlauf_MLS.shtml","Le Moléson FR"), ("zeitverlauf_LEI.shtml","Leibstadt AG"), ("zeitverlauf_OTL.shtml" ,"Locarno / Monti TI"), ("zeitverlauf_LUG.shtml" ,"Lugano TI"), ("zeitverlauf_LUZ.shtml" ,"Luzern LU"), ("zeitverlauf_MAG.shtml" ,"Magadino / Cadenazzo TI"), ("zeitverlauf_MER.shtml" ,"Meiringen BE"), ("zeitverlauf_MOE.shtml" ,"Möhlin AG"), ("zeitverlauf_MUB.shtml" ,"Mühleberg BE"), ("zeitverlauf_NAP.shtml" ,"Napf BE"), ("zeitverlauf_NEU.shtml" ,"Neuchâtel NE"), ("zeitverlauf_CGI.shtml" ,"Nyon / Changins VD"), ("zeitverlauf_ORO.shtml" ,"Oron VD"), ("zeitverlauf_PAY.shtml" ,"Payerne VD"), ("zeitverlauf_PIO.shtml" ,"Piotta TI"), ("zeitverlauf_PLF.shtml" ,"Plaffeien FR"), ("zeitverlauf_ROB.shtml" ,"Poschiavo / Robbia GR"), ("zeitverlauf_PUY.shtml" ,"Pully VD"), ("zeitverlauf_RUE.shtml" ,"Rünenberg BL"), ("zeitverlauf_SAM.shtml" ,"Samedan GR"), ("zeitverlauf_SBE.shtml" ,"San Bernardino GR"), ("zeitverlauf_SMM.shtml" ,"Santa Maria GR"), ("zeitverlauf_SAE.shtml" ,"Säntis AI"), ("zeitverlauf_SHA.shtml" ,"Schaffhausen SH"), ("zeitverlauf_SCU.shtml" ,"Scuol GR"), ("zeitverlauf_SIO.shtml" ,"Sion VS"), ("zeitverlauf_SBO.shtml" ,"Stabio TI"), ("zeitverlauf_STG.shtml" ,"St. Gallen SG"), ("zeitverlauf_ULR.shtml" ,"Ulrichen VS"), ("zeitverlauf_VAD.shtml" ,"Vaduz"), ("zeitverlauf_VIO.shtml" ,"Vicosoprano GR"), ("zeitverlauf_PSI.shtml" ,"Villigen, PSI AG "), ("zeitverlauf_VIS.shtml" ,"Visp VS"), ("zeitverlauf_WAE.shtml" ,"Wädenswil ZH"), ("zeitverlauf_WYN.shtml" ,"Wynau BE"), ("zeitverlauf_ZER.shtml" ,"Zermatt VS"), ("zeitverlauf_REH.shtml" ,"Zürich / Affoltern ZH"), ("zeitverlauf_SMA.shtml" ,"Zürich / Fluntern ZH"), ("zeitverlauf_KLO.shtml" ,"Zürich-Kloten ZH") ] self.Destino_Paginas="paginas" self.Destino_Datos="datos" def Procesa(self): #!!!!!!!!! OJO QUE ME CARGO EL .SHTML !!!!!!!!!!! comando="rm "+self.Destino_Paginas+"/*" os.system(comando) total=len(self.Estaciones_Suizas) for i in range(0,len(self.Estaciones_Suizas)): #Obtención de la página web sin complicaciones con wget. URL=self.URL+self.Estaciones_Suizas[i][0] print "(%d de %d) Descargando %s" % (i,total,self.Estaciones_Suizas[i][0]) os.system("wget -q "+URL+" -O "+self.Destino_Paginas+"/"+self.Estaciones_Suizas[i][0]) print "Descarga finalizada." def Extraer_Datos(self): #A lo bruto... print "Procesando descargas..." for j in range(0,len(self.Estaciones_Suizas)): estacion=self.Estaciones_Suizas[j][0][-9:-6] #print estacion #Extraer la tabla... A_ello=0 Cadena="" fichero=open(self.Destino_Paginas+"/"+self.Estaciones_Suizas[j][0]) for linea in fichero.readlines(): if A_ello: Cadena+=linea[:-1] #if linea.find("<table cellspacing='0'>")>0: if linea.find("Bemerkungen")>0: A_ello=1 if linea.find("</table>")>0: A_ello=0 #print Cadena fichero.close() #Extraer datos de xml... Cadena2="" Borrando=0 for i in range(0,len(Cadena)): if Cadena[i]=="<": Borrando=1 if not Borrando: if ord(Cadena[i])>31 and ord(Cadena[i])<123: Cadena2+=Cadena[i] if Cadena[i]==">": Borrando=0 #print Cadena2 #Limpiar un poco... Cadena3="" for i in range(0,len(Cadena2)-1): if Cadena2[i]==" " and Cadena2[i+1]<>" ": Cadena3+=Cadena2[i] if Cadena2[i]<>" ": Cadena3+=Cadena2[i] #Palabras... Tabla=[] palabra="" en_palabra=0 for i in range(0,len(Cadena3)): if Cadena3[i]<>" ": en_palabra=1 else: if en_palabra: en_palabra=0 Tabla.append(palabra) palabra="" if en_palabra: palabra+=Cadena3[i] if en_palabra: Tabla.append(palabra) #Probemos primero con un fichero. fichero=open(self.Destino_Datos+"/prueba.txt","a") #print Tabla,len(Tabla) linea="" for i in range(0,len(Tabla)/5): linea+=estacion+" " for ii in range(0,5): linea+=Tabla[i*5+ii]+" " linea+="\n" fichero.write(linea) linea="" fichero.close() print "Descargas procesadas." if __name__=="__main__": E=Estaciones() E.Procesa() E.Extraer_Datos()
#!/usr/bin/env python# -*- coding: latin -*-import osimport sqlite3class Estaciones: def __init__(self): self.URL="https://www.naz.ch/en/aktuell/" self.Estaciones_Suizas=[("zeitverlauf_TAE.shtml","Aadorf / Tänikon TG"), ("zeitverlauf_ABO.shtml","Adelboden BE"), ("zeitverlauf_AIG.shtml","Aigle VD"), ("zeitverlauf_ALT.shtml","Altdorf UR"), ("zeitverlauf_BAS.shtml","Basel / Binningen BL"), ("zeitverlauf_BER.shtml","Bern / Zollikofen BE"), ("zeitverlauf_BEZ.shtml","Beznau AG"), ("zeitverlauf_BUS.shtml","Buchs / Aarau AG"), ("zeitverlauf_FRE.shtml","Bullet / La Frêtaz VD"), ("zeitverlauf_CHA.shtml","Chasseral BE"), ("zeitverlauf_CHU.shtml","Chur GR"), ("zeitverlauf_GSB.shtml","Col du Grand St-Bernhard VS"), ("zeitverlauf_DAV.shtml","Davos GR"), ("zeitverlauf_DIS.shtml","Disentis / Sedrun GR"), ("zeitverlauf_EGO.shtml","Egolzwil LU"), ("zeitverlauf_ENG.shtml","Engelberg OW"), ("zeitverlauf_FAH.shtml","Fahy / Boncourt JU"), ("zeitverlauf_GVE.shtml","Genève-Cointrin GE"), ("zeitverlauf_GLA.shtml","Glarus GL"), ("zeitverlauf_GOE.shtml","Gösgen SO"), ("zeitverlauf_GRE.shtml","Grenchen SO"), ("zeitverlauf_GUE.shtml","Gütsch ob Andermatt UR"), ("zeitverlauf_GUT.shtml","Güttingen TG"), ("zeitverlauf_HOE.shtml","Hörnli ZH"), ("zeitverlauf_JUN.shtml","Jungfraujoch VS"), ("zeitverlauf_CDF.shtml","La Chaux-de-Fonds NE"), ("zeitverlauf_DOL.shtml","La Dôle VD"), ("zeitverlauf_MLS.shtml","Le Moléson FR"), ("zeitverlauf_LEI.shtml","Leibstadt AG"), ("zeitverlauf_OTL.shtml" ,"Locarno / Monti TI"), ("zeitverlauf_LUG.shtml" ,"Lugano TI"), ("zeitverlauf_LUZ.shtml" ,"Luzern LU"), ("zeitverlauf_MAG.shtml" ,"Magadino / Cadenazzo TI"), ("zeitverlauf_MER.shtml" ,"Meiringen BE"), ("zeitverlauf_MOE.shtml" ,"Möhlin AG"), ("zeitverlauf_MUB.shtml" ,"Mühleberg BE"), ("zeitverlauf_NAP.shtml" ,"Napf BE"), ("zeitverlauf_NEU.shtml" ,"Neuchâtel NE"), ("zeitverlauf_CGI.shtml" ,"Nyon / Changins VD"), ("zeitverlauf_ORO.shtml" ,"Oron VD"), ("zeitverlauf_PAY.shtml" ,"Payerne VD"), ("zeitverlauf_PIO.shtml" ,"Piotta TI"), ("zeitverlauf_PLF.shtml" ,"Plaffeien FR"), ("zeitverlauf_ROB.shtml" ,"Poschiavo / Robbia GR"), ("zeitverlauf_PUY.shtml" ,"Pully VD"), ("zeitverlauf_RUE.shtml" ,"Rünenberg BL"), ("zeitverlauf_SAM.shtml" ,"Samedan GR"), ("zeitverlauf_SBE.shtml" ,"San Bernardino GR"), ("zeitverlauf_SMM.shtml" ,"Santa Maria GR"), ("zeitverlauf_SAE.shtml" ,"Säntis AI"), ("zeitverlauf_SHA.shtml" ,"Schaffhausen SH"), ("zeitverlauf_SCU.shtml" ,"Scuol GR"), ("zeitverlauf_SIO.shtml" ,"Sion VS"), ("zeitverlauf_SBO.shtml" ,"Stabio TI"), ("zeitverlauf_STG.shtml" ,"St. Gallen SG"), ("zeitverlauf_ULR.shtml" ,"Ulrichen VS"), ("zeitverlauf_VAD.shtml" ,"Vaduz"), ("zeitverlauf_VIO.shtml" ,"Vicosoprano GR"), ("zeitverlauf_PSI.shtml" ,"Villigen, PSI AG "), ("zeitverlauf_VIS.shtml" ,"Visp VS"), ("zeitverlauf_WAE.shtml" ,"Wädenswil ZH"), ("zeitverlauf_WYN.shtml" ,"Wynau BE"), ("zeitverlauf_ZER.shtml" ,"Zermatt VS"), ("zeitverlauf_REH.shtml" ,"Zürich / Affoltern ZH"), ("zeitverlauf_SMA.shtml" ,"Zürich / Fluntern ZH"), ("zeitverlauf_KLO.shtml" ,"Zürich-Kloten ZH") ] self.Destino_Paginas="paginas" self.Destino_Datos="datos" def Procesa(self): #!!!!!!!!! OJO QUE ME CARGO EL .SHTML !!!!!!!!!!! comando="rm "+self.Destino_Paginas+"/*" os.system(comando) total=len(self.Estaciones_Suizas) for i in range(0,len(self.Estaciones_Suizas)): #Obtención de la página web sin complicaciones con wget. URL=self.URL+self.Estaciones_Suizas[i][0] print "(%d de %d) Descargando %s" % (i,total,self.Estaciones_Suizas[i][0]) os.system("wget -q "+URL+" -O "+self.Destino_Paginas+"/"+self.Estaciones_Suizas[i][0]) print "Descarga finalizada." def Extraer_Datos(self): #A lo bruto... print "Procesando descargas..." for j in range(0,len(self.Estaciones_Suizas)): estacion=self.Estaciones_Suizas[j][0][-9:-6] #print estacion #Extraer la tabla... A_ello=0 Cadena="" fichero=open(self.Destino_Paginas+"/"+self.Estaciones_Suizas[j][0]) for linea in fichero.readlines(): if A_ello: Cadena+=linea[:-1] #if linea.find("<table cellspacing='0'>")>0: if linea.find("Bemerkungen")>0: A_ello=1 if linea.find("</table>")>0: A_ello=0 #print Cadena fichero.close() #Extraer datos de xml... Cadena2="" Borrando=0 for i in range(0,len(Cadena)): if Cadena[i]=="<": Borrando=1 if not Borrando: if ord(Cadena[i])>31 and ord(Cadena[i])<123: Cadena2+=Cadena[i] if Cadena[i]==">": Borrando=0 #print Cadena2 #Limpiar un poco... Cadena3="" for i in range(0,len(Cadena2)-1): if Cadena2[i]==" " and Cadena2[i+1]<>" ": Cadena3+=Cadena2[i] if Cadena2[i]<>" ": Cadena3+=Cadena2[i] #Palabras... Tabla=[] palabra="" en_palabra=0 for i in range(0,len(Cadena3)): if Cadena3[i]<>" ": en_palabra=1 else: if en_palabra: en_palabra=0 Tabla.append(palabra) palabra="" if en_palabra: palabra+=Cadena3[i] if en_palabra: Tabla.append(palabra) #Probemos primero con un fichero. fichero=open(self.Destino_Datos+"/prueba.txt","a") #print Tabla,len(Tabla) linea="" for i in range(0,len(Tabla)/5): linea+=estacion+" " for ii in range(0,5): linea+=Tabla[i*5+ii]+" " linea+="\n" fichero.write(linea) linea="" fichero.close() #Ahora, guardamos en SQlite3. #Nombre bbdd: radioactividad.db #Definicion de la tabla: #create table mediciones (estacion varchar(10), fecha varchar(10), hora varchar(10), valor1 varchar(10), valor2 varchar(10), valor3 varchar(10), primary key (estacion, fecha, hora)); conexion=sqlite3.connect(self.Destino_Datos+"/"+"radioactividad.db") c=conexion.cursor() for i in range(0,len(Tabla)/5): sql="insert into mediciones values ('"+estacion+"','"+Tabla[i*5]+"','"+Tabla[i*5+1]+"','"+Tabla[i*5+2]+"','"+Tabla[i*5+3]+"','"+Tabla[i*5+4]+"')" try: c.execute(sql) except: #print "Datos ya existentes: ", sql pass conexion.commit() c.close() print "Descargas procesadas." if __name__=="__main__": E=Estaciones() E.Procesa() E.Extraer_Datos()
Py hay picos significativos en als mediciones puedes registralarlas??