A simplicidade e a adaptabilidade do Python o ajudaram a ganhar popularidade ao longo dos anos. Você pode facilmente recuperar dados úteis pela internet com o Python. Você pode usar esses dados para conduzir um aplicativo prático.
Saiba como encontrar dados meteorológicos em tempo real usando web scraping e APIs. Você pode usar esses dados obtidos para desenvolver um aplicativo meteorológico simples.
Obtenha detalhes do clima atual de uma cidade usando a raspagem da Web
Web scraping é o processo de extração de dados e conteúdo de um site. A busca autônoma de dados da Web abre muitos casos de uso. Mas a maioria desses dados está no formato HTML, que você precisa analisar e inspecionar para extrair dados relevantes.
Você pode extrair dados meteorológicos ao vivo de qualquer cidade usando web scraping. A biblioteca BeautifulSoup do Python é a biblioteca ideal para extrair dados de arquivos HTML e XML. Você precisa instalar a biblioteca BeautifulSoup Python via pip para iniciar o processo de raspagem. Execute o seguinte comando no terminal para instalar o BeautifulSoup e as bibliotecas de requisições:
pip instalar pedidos de beautifulsoup4
Depois de instalar as bibliotecas necessárias, comece importando-as em seu código:
O código utilizado neste projeto está disponível em um Repositório GitHub e é gratuito para você usar sob a licença do MIT.
de bs4 importar Belasopa
importar solicitações de
Em seguida, você precisa fornecer os detalhes do cabeçalho para que o cliente e o servidor possam passar informações adicionais com uma solicitação ou resposta HTTP:
cabeçalhos = {
'Agente de usuário': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
Crie uma função, encontrar_clima(), para fazer uma consulta ao Google usando o pedidos.get() método. Você usará um URL de pesquisa para obter o clima de uma cidade e, em seguida, coletará os dados significativos para obter localização, temperatura, hora e descrição do clima. Em seguida, use BeautifulSoup para analisar a resposta HTML recebida:
defencontrar_clima(Nome da Cidade):
city_name = city_name.replace("", "+")tentar:
res = pedidos.get(
f'https://www.google.com/search? q={city_name}&oq={city_name}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrome&ou seja=UTF-8', cabeçalhos=cabeçalhos)imprimir("Carregando...")
sopa = BeautifulSoup (res.texto, 'html.parser')
local = sopa.select('#wob_loc')[0].getText().strip()
tempo = sopa.select('#wob_dts')[0].getText().strip()
info = sopa.select('#wob_dc')[0].getText().strip()
temperatura = sopa.select('#wob_tm')[0].getText().strip()
imprimir("Localização: " + localização)
imprimir("Temperatura: " + temperatura + "°C")
imprimir("Tempo: " + tempo)
imprimir("Descrição do tempo: " + informações)
exceto:
imprimir("Insira um nome de cidade válido")
Para extrair os IDs dos elementos, faça uma pesquisa no Google e inspecione a página em seu navegador usando ferramentas da web. Você precisa inspecionar o elemento para encontrar os IDs do elemento HTML para o qual deseja extrair dados:
Em seguida, passe esses IDs para o selecione() método. Esse método executa um seletor CSS no documento analisado e retorna todos os elementos correspondentes. O getText() O método extrai o texto do elemento HTML. O faixa() O método remove todos os caracteres de espaço em branco iniciais e finais do texto. Depois de extrair um valor limpo, você pode armazená-lo em uma variável.
Finalmente, peça ao usuário para inserir uma cidade e passá-la para o encontrar_clima função:
cidade_nome = input("Digite o nome da cidade: ")
cidade_nome = cidade_nome + " clima"
find_weather (city_name)
Agora, quando você executar o código, ele solicitará que você insira o nome de uma cidade. Você deve inserir um nome de cidade válido para obter os resultados ou o código gerará uma exceção.
Obtenha detalhes do clima atual de uma cidade usando a API OpenWeatherMap
OpenWeatherMap é um serviço online de propriedade da OpenWeather Ltd. Sua API fornece dados climáticos globais, incluindo clima atual, previsões e dados anteriores para qualquer local. O nível gratuito da API OpenWeatherMap fornece dados meteorológicos atuais com um limite de 60 chamadas/minuto. Você precisa criar uma conta no OpenWeatherMap para obter sua própria chave de API.
Não envie o código com a chave de API para um repositório público, pois qualquer pessoa com acesso aos seus arquivos de origem pode ver e roubar sua chave. Em um aplicativo de produção, considere mover os dados da chave de API para um arquivo .env para maior segurança.
Vá para OpenWeatherMap's site e crie uma conta gratuita. Depois de criar a conta, você pode encontrar suas chaves de API no Minhas chaves de API página. Você pode usar a chave de API padrão fornecida pelo OpenWeatherMap ou gerar uma de sua preferência. O OpenWeatherMap oferece suporte para gerar quantas chaves de API forem necessárias para seus projetos.
Agora, você está pronto para recuperar os dados meteorológicos ao vivo.
# Importando bibliotecas
importar solicitações de
importar json# Digite sua chave de API OpenWeatherMap aqui
# NÃO envie para um repositório público
API_Key = "Your_API_Key"# Forneça um nome de cidade válido
cidade_nome = input("Digite o nome da cidade: ")# Construindo o caminho do URL da API
url = f"http://api.openweathermap.org/data/2.5/weather? q={city_name}&appid={API_Key}"# Fazendo uma solicitação get para a API
resposta = request.get (url)# Convertendo resposta JSON para um dicionário
res = resposta.json()# Descomente a próxima linha para ver tudo
# dados que são buscados da API
# imprimir (res)# Verificando se a cidade foi encontrada
# Se o valor de "cod" não for 404,
# isso significa que a cidade foi encontrada
se res["bacalhau"] != "404":
dados = res["principal"]# Armazenando os dados de temperatura ao vivo
live_temperature = dados["temperatura"]# Armazenando os dados de pressão ao vivo
live_pressure = dados["pressão"]
desc = res["clima"]# Armazenando a descrição do tempo
weather_description = desc[0]["descrição"]
imprimir("Temperatura (na escala Kelvin): " + str (live_temperature))
imprimir("Pressão: " + str (live_pressure))
imprimir("Descrição: " + str (weather_description))
outro:
# Se a cidade não for encontrada,
# este bloco de código será executado
imprimir("Insira um nome de cidade válido")
Se você fornecer uma chave de API válida e inserir o nome da cidade correto, receberá os dados da API no formato JSON. Em seguida, você precisa converter esses dados no formato JSON em um objeto Python usando o método json() método para executar outras operações. Se a cidade for encontrada, você terá que resolver o objeto dict (res) para extrair as informações necessárias.
Desenvolva um aplicativo meteorológico usando os dados meteorológicos ao vivo
Agora que você aprendeu como buscar dados ao vivo usando a API OpenWeatherMap, está pronto para desenvolver um aplicativo meteorológico simples usando-a. Construir um aplicativo meteorológico pode ajudá-lo a aplicar o que você sabe e aprimorar suas habilidades em Python.
Colocar a mão na massa em projetos práticos pode fazer de você um desenvolvedor melhor. Você pode desenvolver alguns outros projetos Python, como um sistema de login, aplicativo de teste ou encurtador de URL para solidificar suas habilidades de desenvolvimento em Python.