Closed Wanhenri closed 4 years ago
Foi construido um código simples em Python para verificar os dados dentro do arquivo .xml do link (http://servicos.cptec.inpe.br/XML/cidade/244/previsao.xml).
import json
import requests
from xml.etree import ElementTree
class prevInpe:
def get_prevInpe(self,codigo):
response_forecast = requests.get(
'http://servicos.cptec.inpe.br/XML/cidade/' + str(codigo) + '/previsao.xml')
prevCapitais = ElementTree.fromstring(response_forecast.content)
return prevCapitais
inpe_reports = prevInpe()
codigo = 244
for codigo in range(244,250,1):
a = inpe_reports.get_prevInpe(codigo)
for dia, tempo in zip(a.iter('dia'),a.iter('tempo')):
print ("codigo", codigo, dia.tag, dia.text, tempo.tag, tempo.text)
output:
244 dia 2020-01-28 tempo pn
244 dia 2020-01-29 tempo pt
244 dia 2020-01-30 tempo pt
244 dia 2020-01-31 tempo pc
Assim já consigo visualizar os dados contidos dentro do arquivo .xml link repl
Criado uma outra parte do código que já consigo imprimir codigo, nome, dia, tempo.
import json
import requests
from xml.etree import ElementTree
class prevInpe:
def get_prevInpe(self,codigo):
response_forecast = requests.get(
'http://servicos.cptec.inpe.br/XML/cidade/' + str(codigo) + '/previsao.xml')
prevCapitais = ElementTree.fromstring(response_forecast.content)
return prevCapitais
inpe_reports = prevInpe()
# ultimo código é 5903
codigo = 244
for codigo in range(244,250,1):
a = inpe_reports.get_prevInpe(codigo)
for dia, tempo, nome in zip(a.iter('dia'),a.iter('tempo'), a.iter('nome')):
print ("codigo", codigo, nome.text, dia.tag, dia.text, tempo.tag, tempo.text)
Scritp utilizado para extrair e salvar, em arquivo texto, cidade e códigos utilizados na API do INPE.
import requests
from xml.etree import ElementTree
import json
class prevInpe:
def get_prevInpe(self,codigo):
response_forecast = requests.get(
'http://servicos.cptec.inpe.br/XML/cidade/' + str(codigo) + '/previsao.xml')
prevCapitais = ElementTree.fromstring(response_forecast.content)
return prevCapitais
with open('vr_vm.txt', 'w') as f:
inpe_reports = prevInpe()
codigo = 244
for codigo in range(220,5904,1):
a = inpe_reports.get_prevInpe(codigo)
for dia, tempo, nome in zip(a.iter('dia'),a.iter('tempo'), a.iter('nome')):
n = nome.text
c = codigo
#f.write('%s %s %s %s %s %s\n' % ( str(n), str(c), str(d1), str(d2), str(t1), str(t2)))
f.write('%s %s \n' % ( str(n), str(c)))
Para fazer uso da API do INPE com buscas a partir do codigo_da_localidade, requer um código que se inicia em 220. Porém, até o momento não se tinha o conhecimento de onde poderia buscar esse código. Com a abertura da issue #7 , verificou-se que no link todos os códigos utilizados no codigo_da_localidade.
Atividade: