Skip to content

Commit 122334e

Browse files
addLogicaNoticia
1 parent 1bc5023 commit 122334e

File tree

5 files changed

+632
-114
lines changed

5 files changed

+632
-114
lines changed

.idea/workspace.xml

Lines changed: 16 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

areaTeste.py

Lines changed: 56 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,24 @@
66
from datetime import date, datetime
77
import requests
88

9+
from selenium import webdriver
10+
from webdriver_manager.chrome import ChromeDriverManager
11+
from selenium.webdriver.chrome.service import Service
12+
from selenium.webdriver.common.by import By
913

14+
servico = Service(ChromeDriverManager().install())
15+
navegador = webdriver.Chrome(service=servico)
1016

17+
headers = {
18+
'User-agent':
19+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 '
20+
'Safari/537.36 '
21+
}
1122

12-
# api GoogleNews - pip install GoogleNews
13-
# from GoogleNews import GoogleNews
14-
# noticias = GoogleNews(period='d')
15-
# noticias.setlang('pt')
16-
# noticias.search('petroleo')
17-
# resultado = noticias.results()
18-
# print(resultado)
19-
# noticia1 = resultado[0]
20-
# print(noticia1['desc'])
21-
# print(noticia1['link'])
22-
# noticia1 = resultado[1]
23-
# print(noticia1['desc'])
24-
# print(noticia1['link'])
23+
navegador.get('https://news.google.com/')
2524

2625

26+
input(':')
2727

2828
# api cotações moedas
2929
# cotacoes = requests.get('https://economia.awesomeapi.com.br/last/USD-BRL,EUR-BRL,BTC-BRL')
@@ -44,53 +44,49 @@
4444
# print(f'{btc} mil reais')
4545

4646

47-
48-
49-
5047
# api previsão do tempo
51-
consulta = input('Capital: ')
52-
with open('arquivos/previsoes_capitais_brasil.txt', 'r', encoding="utf8") as arquivo_previsoes:
53-
capitais = arquivo_previsoes.read()
54-
capitais = json.loads(capitais)
55-
with open('arquivos/capitais_estados.txt', 'r', encoding="utf8") as arquivo_capitais:
56-
estados = arquivo_capitais.read()
57-
estados = json.loads(estados)
58-
for i, j in estados.items():
59-
if consulta in i:
60-
estado = j
61-
print(f'{consulta}/{estado}')
62-
63-
consulta = capitais[consulta]
64-
65-
previsao = requests.get(consulta)
66-
previsao = previsao.json()
67-
68-
# dia
69-
data = previsao['daily']
70-
data = data['time']
71-
data = data[0]
72-
data = datetime.strptime(data, '%Y-%m-%d').date()
73-
data = datetime.strftime(data, '%d/%m/%Y')
74-
print(f'Data: {data}')
75-
76-
# temperatura mínima
77-
temp_min = previsao['daily']
78-
temp_min = temp_min['temperature_2m_min']
79-
temp_min = temp_min[0]
80-
print(f'Temperatura Mínima: {temp_min}')
81-
82-
# temperatura máxima
83-
temp_max = previsao['daily']
84-
temp_max = temp_max['temperature_2m_max']
85-
temp_max = temp_max[0]
86-
print(f'Temperatura Máxima: {temp_max}')
87-
88-
# precipitação
89-
precipitacao = previsao['daily']
90-
precipitacao = precipitacao['precipitation_sum']
91-
precipitacao = precipitacao[0]
92-
print(f'Precipitação de chuva última hora: {precipitacao} mm')
93-
48+
# consulta = input('Capital: ')
49+
# with open('arquivos/previsoes_capitais_brasil.txt', 'r', encoding="utf8") as arquivo_previsoes:
50+
# capitais = arquivo_previsoes.read()
51+
# capitais = json.loads(capitais)
52+
# with open('arquivos/capitais_estados.txt', 'r', encoding="utf8") as arquivo_capitais:
53+
# estados = arquivo_capitais.read()
54+
# estados = json.loads(estados)
55+
# for i, j in estados.items():
56+
# if consulta in i:
57+
# estado = j
58+
# print(f'{consulta}/{estado}')
59+
#
60+
# consulta = capitais[consulta]
61+
#
62+
# previsao = requests.get(consulta)
63+
# previsao = previsao.json()
64+
#
65+
# # dia
66+
# data = previsao['daily']
67+
# data = data['time']
68+
# data = data[0]
69+
# data = datetime.strptime(data, '%Y-%m-%d').date()
70+
# data = datetime.strftime(data, '%d/%m/%Y')
71+
# print(f'Data: {data}')
72+
#
73+
# # temperatura mínima
74+
# temp_min = previsao['daily']
75+
# temp_min = temp_min['temperature_2m_min']
76+
# temp_min = temp_min[0]
77+
# print(f'Temperatura Mínima: {temp_min}')
78+
#
79+
# # temperatura máxima
80+
# temp_max = previsao['daily']
81+
# temp_max = temp_max['temperature_2m_max']
82+
# temp_max = temp_max[0]
83+
# print(f'Temperatura Máxima: {temp_max}')
84+
#
85+
# # precipitação
86+
# precipitacao = previsao['daily']
87+
# precipitacao = precipitacao['precipitation_sum']
88+
# precipitacao = precipitacao[0]
89+
# print(f'Precipitação de chuva última hora: {precipitacao} mm')
9490

9591

9692
# arquivo proverbios
@@ -100,3 +96,4 @@
10096

10197

10298

99+

noticias.py

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
from PyQt5 import uic, QtWidgets, QtGui
2+
from selenium import webdriver
3+
from webdriver_manager.chrome import ChromeDriverManager
4+
from selenium.webdriver.chrome.service import Service
5+
from selenium.webdriver.common.by import By
6+
from selenium.webdriver.chrome.options import Options
7+
from bs4 import BeautifulSoup
8+
from time import sleep
9+
import json
10+
from datetime import date, datetime
11+
import requests
12+
13+
global textos
14+
global capitais
15+
global estados
16+
17+
18+
def buscar_noticias():
19+
20+
options = Options()
21+
options.add_argument('--headless')
22+
servico = Service(ChromeDriverManager().install())
23+
navegador = webdriver.Chrome(service=servico, options=options)
24+
navegador.get('https://jovempan.com.br/')
25+
26+
sleep(1)
27+
28+
site = BeautifulSoup(navegador.page_source, 'html.parser')
29+
noticia = site.find('div', attrs={'class': 'row row-flex'})
30+
titulos = noticia.findAll('p', attrs={'class': 'title'})
31+
32+
global textos
33+
textos = []
34+
for i in titulos:
35+
textos.append(i.text)
36+
37+
38+
def chamar_atualizar():
39+
import random
40+
print(textos[random.choice(range(len(textos)))])
41+
tela_noticias.label_noticias.setText(textos[random.choice(range(len(textos)))])
42+
43+
44+
def montar_listas_capitais():
45+
global capitais
46+
global estados
47+
with open('arquivos/previsoes_capitais_brasil.txt', 'r', encoding="utf8") as arquivo_previsoes:
48+
capitais = arquivo_previsoes.read()
49+
capitais = json.loads(capitais)
50+
print(capitais)
51+
with open('arquivos/capitais_estados.txt', 'r', encoding="utf8") as arquivo_capitais:
52+
estados = arquivo_capitais.read()
53+
estados = json.loads(estados)
54+
print(estados)
55+
56+
57+
def previsao_capital():
58+
consulta = tela_noticias.comboBox.currentText()
59+
print(consulta)
60+
61+
if consulta == 'CAPITAIS':
62+
tela_noticias.label_previsao.setText('Selecione uma Capital')
63+
tela_noticias.label_capital_estado.setText('Capital/Estado')
64+
else:
65+
print(consulta)
66+
for i, j in estados.items():
67+
if consulta in i:
68+
estado = j
69+
tela_noticias.label_capital_estado.setText(f'{consulta}/{estado}')
70+
print(f'{consulta}/{estado}')
71+
72+
consulta = capitais[consulta]
73+
print(consulta)
74+
75+
previsao = requests.get(consulta)
76+
previsao = previsao.json()
77+
78+
data = previsao['daily']
79+
data = data['time']
80+
data = data[0]
81+
data = datetime.strptime(data, '%Y-%m-%d').date()
82+
data = datetime.strftime(data, '%d/%m/%Y')
83+
print(f'Data: {data}')
84+
85+
temp_min = previsao['daily']
86+
temp_min = temp_min['temperature_2m_min']
87+
temp_min = temp_min[0]
88+
print(f'Temperatura Mínima: {temp_min}')
89+
90+
temp_max = previsao['daily']
91+
temp_max = temp_max['temperature_2m_max']
92+
temp_max = temp_max[0]
93+
print(f'Temperatura Máxima: {temp_max}')
94+
95+
precipitacao = previsao['daily']
96+
precipitacao = precipitacao['precipitation_sum']
97+
precipitacao = precipitacao[0]
98+
print(f'Precipitação de chuva última hora: {precipitacao} mm')
99+
100+
tela_noticias.label_previsao.setText(f'Temperatura Mínima: {temp_min}\n'
101+
f'Temperatura Máxima: {temp_max}\n'
102+
f'Precipitação de chuva última hora: {precipitacao} mm')
103+
104+
data_hora = datetime.now()
105+
print(f'{data_hora.day}/{data_hora.month}/{data_hora.year}\n'
106+
f'{data_hora.hour}:{data_hora.minute}')
107+
tela_noticias.label_data_hora.setText((f'{data_hora.day}/{data_hora.month}/{data_hora.year}\n'
108+
f'{data_hora.hour}:{data_hora.minute}'))
109+
110+
111+
112+
113+
app = QtWidgets.QApplication([])
114+
tela_noticias = uic.loadUi('tela_noticias.ui')
115+
tela_noticias.setWindowTitle('Notícias')
116+
tela_noticias.setWindowIcon(QtGui.QIcon('imagens/informativo_icon.png'))
117+
118+
tela_noticias.btn_atualizar.clicked.connect(chamar_atualizar)
119+
tela_noticias.btn_tempo.clicked.connect(previsao_capital)
120+
121+
buscar_noticias()
122+
montar_listas_capitais()
123+
124+
tela_noticias.show()
125+
app.exec()

0 commit comments

Comments
 (0)