critico o favorable

This commit is contained in:
Your Name
2025-02-05 22:45:41 +01:00
parent 987e24bd00
commit 03d334fade
9 changed files with 65 additions and 287 deletions

View File

@ -5,7 +5,7 @@ import os
import time
import subprocess
from googlenewsdecoder import gnewsdecoder
from iacorrector import is_security_related # Importa la función desde iacorrector.py
from iacorrector import is_security_related, is_critico, is_favorable # Importa la función desde iacorrector.py
from datetime import datetime
import pytz
@ -86,7 +86,7 @@ def search_news(query):
articles = soup.find_all("item")
news_list = []
for article in articles[:30]: # Limitar a los primeros 30 artículos
for article in articles[:10]: # Limitar a los primeros 30 artículos
try:
title = article.title.get_text(strip=True)
content = article.description.get_text(strip=True) if article.description else "Sin descripción"
@ -95,6 +95,8 @@ def search_news(query):
date = article.pubDate.get_text(strip=True) if article.pubDate else "Fecha no disponible"
date_parsed = datetime.strptime(date, '%a, %d %b %Y %H:%M:%S GMT')
date_parsed = date_parsed.replace(tzinfo=pytz.UTC)
critico = False
favorable = False
# Obtener la URL final del artículo
final_url = get_url_from_google_news(link)
@ -102,6 +104,9 @@ def search_news(query):
# Obtener el autor usando autorsearcher.py
author = get_author_from_script(final_url)
content = get_article_content(final_url)
critico = is_critico(content)
favorable = is_favorable(content)
# Verificar si el artículo es válido usando iacorrector
if is_security_related(content): # Solo si el artículo es válido
@ -111,9 +116,11 @@ def search_news(query):
"autor": author,
"fuente": source_info,
"fecha": date_parsed.isoformat(),
"link": final_url # Guardamos la URL final en lugar de la de Google News
"link": final_url, # Guardamos la URL final en lugar de la de Google News,
"critico": critico,
"favorable":favorable
}
news_list.append(news_item)
insertar_datos(news_item)
except Exception as e:
print(f"Error al procesar un artículo para '{query}': {e}")
@ -130,9 +137,6 @@ def insertar_datos(news_item):
else:
print(f"Error al insertar '{news_item['titulo']}':", response.status_code, response.json())
def search_from_keywords_file():
"""
Lee palabras clave del archivo 'keywords.txt' y realiza búsquedas para cada una.
@ -148,14 +152,9 @@ def search_from_keywords_file():
for keyword in keywords:
print(f"\nBuscando noticias sobre: {keyword}")
news_list = search_news(keyword)
all_news.extend(news_list) # Añadir las noticias encontradas para cada palabra clave
search_news(keyword)
time.sleep(2) # Pausa para evitar bloqueos por demasiadas solicitudes en poco tiempo
# Guardar todas las noticias en un archivo JSON
for news in all_news:
insertar_datos(news)
except FileNotFoundError:
print("No se encontró el archivo 'keywords.txt'.")
except Exception as e: