Previsão do Tempo

Publicado por Fábio Berbert de Paula (última atualização em 28/11/2018)

[ Hits: 323 ]

Homepage: https://fabio.city

Download previsao.py




Simples script em Python que puxa os dados da previsão do tempo do mecanismo de busca Google.

Utiliza a biblioteca requests-html:

$ pip install requests-html

Script modular, basta copiar a função previsao() para sua aplicação e usá-la a bel prazer.

Forma de uso

Se você invocá-lo sem argumentos, ele retornará a previsão do tempo de sua localidade atual:

$ python previsao.py

É possível informar a região desejada, exemplo:

$ python previsao.py rio de janeiro

Maiores informações em: https://github.com/fberbert/previsao-do-tempo

  



Esconder código-fonte

#!/usr/bin/env python3
"""
Autor: Fábio Berbert de Paula <fberbert@gmail.com>
Data : 27/11/2018
"""

def previsao(local=''):
    #pip install requests-html
    from requests_html import HTMLSession
    import re

    session = HTMLSession()

    url = 'https://www.google.com.br/search?q=previsao+do+tempo&oq=previsao+do+tempo&ie=UTF-8'
    if local != '':
        local = local.replace(' ', '+')
        url = url.replace('tempo', 'tempo+' + local)

    #URL resultado da busca no Google por: previsao do tempo
    r = session.get(url)

    #abaixo defino os seletores CSS de cada elemento da pagina
    #e armazeno nas devidas variaveis
    selector_city = '#wob_loc'
    city = r.html.find(selector_city, first=True).text

    selector_date = '#wob_dts'
    date = r.html.find(selector_date, first=True).text

    selector_state = '#wob_dc'
    state = r.html.find(selector_state, first=True).text

    selector_temp = '#wob_tm'
    temp = r.html.find(selector_temp, first=True).text

    #regex para limpar informacoes irrelevantes
    regex = re.compile(r'\nTemperatura.*$', re.DOTALL)
    selector_dtl = 'div.wob-dtl'
    dtl = r.html.find(selector_dtl, first=True).text
    dtl = regex.sub("", dtl)

    return("%s\n%s\t%s°C (%s)\n\n%s" %(city, date, temp, state, dtl))

#leitura da localidade (parâmetro via linha de comando)
import sys

local=''
if len(sys.argv)>0:
    sys.argv.pop(0)
    local = ' '.join(sys.argv)

print(previsao(local))

Scripts recomendados

Tradutor on-line em Python+GTK

Navegando em formulários com login e senha

Chatbot em Python

Atualizador Twitter

Cotação do Dólar com requests_html


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts