Sabemos que as atualizações do tempo são muito importantes em nosso dia-a-dia. Então, estamos apresentando a lógica e o script de uma maneira mais fácil de entender para todos. Vamos ver um script Python simples para mostrar a atualização ao vivo para informações sobre o clima. 

Módulos Necessários

Neste script, estamos usando algumas bibliotecas

  • bs4 : Beautiful Soup (bs4) é uma biblioteca Python para extrair dados de arquivos HTML e XML. Para instalar este módulo, digite o comando abaixo no terminal.
pip install bs4
  • win10toast: esta biblioteca ajuda na criação de notificações na área de trabalho. Para instalar este módulo, digite o comando abaixo no terminal.
pip instalar win10toast
  • solicitações : Esta biblioteca permite enviar solicitações HTTP / 1.1 com extrema facilidade. Para instalar este módulo, digite o comando abaixo no terminal.
pedidos de instalação pip

Abordagem :

  1. Extraia o formulário de dados fornecido URL.
  2. Raspe os dados com a ajuda de Pedidos e Sopa Bonita.
  3. Converta esses dados em código html.
  4. Encontre os detalhes necessários e filtre-os.
  5. Salve o resultado na String.
  6. Passe o resultado no objeto Notificação.

Vamos executar o script passo a passo:

Etapa 1: importar todas as dependências



import requests 
from bs4 import BeautifulSoup 
from win10toast import ToastNotifier 

Etapa 2: Crie um objeto da classe ToastNotifier.

n = ToastNotifier() 

Etapa 3: defina uma função para obter dados do url fornecido.

def getdata(url): 
    
    r = requests.get(url) 
      
    return r.text

Etapa 4: agora passe o URL para a função getdata e converta esses dados em código HTML.

htmldata = getdata("https://weather.com/en-IN/weather/today/l/25.59,85.14?par=google&temp=c/") 
  
soup = BeautifulSoup(htmldata, 'html.parser') 
  
print(soup.prettify()) 

Depois de executar este script, você obterá dados brutos como estes:



Informação bruta de HTML 

Etapa 5: encontre os detalhes necessários e filtre-os 

current_temp = soup.find_all("span"
                             class_=" _-_-components-src-organism-CurrentConditions-CurrentConditions--tempValue--MHmYY") 
chances_rain = soup.find_all("div"
                             class_= "_-_-components-src-organism-CurrentConditions-CurrentConditions--precipValue--2aJSf") 
  
temp = (str(current_temp))    
temp_rain = str(chances_rain) 
  
result = "current_temp " + temp[128:-9] + "  in patna bihar" + "\n" +temp_rain[131:-14] 

Passo 6: Agora passe o resultado para o objeto de notificações.

n.show_toast("Weather update", result, duration = 10)

Produto :

notificação 

Código Completo:

import requests 
from bs4 import BeautifulSoup 
from win10toast import ToastNotifier 
n = ToastNotifier() 
def getdata(url): 
    r = requests.get(url) 
    return r.text 
    
htmldata = getdata("https://weather.com/en-IN/weather/today/l/25.59,85.14?par=google&temp=c/") 
  
soup = BeautifulSoup(htmldata, 'html.parser') 
  
current_temp = soup.find_all("span", class_= "_-_-components-src-organism-CurrentConditions-CurrentConditions--tempValue--MHmYY") 
  
chances_rain = soup.find_all("div", class_= "_-_-components-src-organism-CurrentConditions-CurrentConditions--precipValue--2aJSf") 
  
temp = (str(current_temp)) 
  
temp_rain = str(chances_rain) 
   
result = "current_temp " + temp[128:-9] + "  in patna bihar" + "\n" + temp_rain[131:-14] 
n.show_toast("live Weather update"
             result, duration = 10) 

Resultado:

Notificação ao Vivo