Receba notificações de clima ao vivo na área de trabalho usando Python
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 :
- Extraia o formulário de dados fornecido URL.
- Raspe os dados com a ajuda de Pedidos e Sopa Bonita.
- Converta esses dados em código html.
- Encontre os detalhes necessários e filtre-os.
- Salve o resultado na String.
- 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'
)
(soup.prettify())
Depois de executar este script, você obterá dados brutos como estes:
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 :
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:
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva