import requests
import gradio as gr
from bs4 import BeautifulSoup
# Função para raspar as notícias do Portal do Holanda
def scrape_news():
url = 'https://www.portaldoholanda.com.br'
try:
# Adicionando um timeout de 10 segundos
response = requests.get('https://www.portaldoholanda.com.br/', timeout=10)
except requests.Timeout:
return "O pedido excedeu o tempo limite. Tente novamente mais tarde."
except requests.RequestException as e:
return f"Erro ao fazer a requisição: {e}"
content = response.content
site = BeautifulSoup(content, 'html.parser')
noticias = site.findAll('div', attrs={'class': 'column homenoticia'})
resultados = ["
----------------Portal do Holanda - Últimas Notícias----------------
"]
for noticia in noticias:
titulo = noticia.find('a')
titulo_text = titulo.text.strip() if titulo else "Sem título"
subtitulo = noticia.find('a', attrs={'class': 'destaque relacionada'})
subtitulo_text = subtitulo.text.strip() if subtitulo else "Sem subtítulo"
link = url + titulo['href'] if titulo else "#"
hora = noticia.find('p', attrs={'class': 'destaque ha'})
hora_text = hora.text.strip() if hora else "Sem horário de postagem"
resultados.append(
f"Título: {titulo_text if titulo else 'Não disponível'}
"
f"Subtítulo: {subtitulo_text if subtitulo else 'Não disponível'}
"
f""
f"Hora da Postagem: {hora_text if hora else 'Não disponível'}
"
)
return "\n".join(resultados)
iface_holanda = gr.Interface(
fn=scrape_news,
inputs=[],
outputs="html",
title="Portal do Holanda - Notícias",
description="Fique por dentro das últimas notícias do Portal do Holanda!",
css="footer.svelte-1rjryqp.svelte-1rjryqp.svelte-1rjryqp {display: none !important;} .panel.svelte-vt1mxs {background: #fff !important;} .show-api {display: none !important;} .svelte-mpyp5e a {display: none !important;} .textarea {font-size: 20px !important; }",
allow_flagging= "never"
)
iface_holanda.launch(share=True)