lector de contenido
This commit is contained in:
File diff suppressed because one or more lines are too long
@ -34,6 +34,39 @@ def get_url_from_google_news(url):
|
||||
except Exception as e:
|
||||
print(f"Error occurred: {e}")
|
||||
|
||||
def get_article_content(url):
|
||||
"""
|
||||
Extrae el texto principal del artículo desde la URL final.
|
||||
"""
|
||||
try:
|
||||
response = requests.get(url, headers=HEADERS)
|
||||
if response.status_code != 200:
|
||||
print(f"Error al acceder a {url}: Código {response.status_code}")
|
||||
return "No se pudo obtener el contenido"
|
||||
|
||||
soup = BeautifulSoup(response.text, "html.parser")
|
||||
|
||||
# Buscar los elementos más comunes donde se almacena el contenido del artículo
|
||||
possible_containers = [
|
||||
soup.find("article"), # Etiqueta <article> (común en blogs y periódicos)
|
||||
soup.find("div", class_="post-content"), # Clases comunes en WordPress
|
||||
soup.find("div", class_="entry-content"),
|
||||
soup.find("div", class_="content"),
|
||||
soup.find("div", id="article-body")
|
||||
]
|
||||
|
||||
for container in possible_containers:
|
||||
if container:
|
||||
paragraphs = container.find_all("p")
|
||||
article_text = "\n".join(p.get_text(strip=True) for p in paragraphs)
|
||||
return article_text if article_text else "No se encontró contenido relevante"
|
||||
|
||||
return "No se encontró contenido relevante"
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error al extraer contenido de {url}: {e}")
|
||||
return "Error al extraer contenido"
|
||||
|
||||
def search_news(query):
|
||||
"""
|
||||
Busca noticias relacionadas con una palabra clave en Google News.
|
||||
@ -63,7 +96,7 @@ def search_news(query):
|
||||
|
||||
# Obtener el autor usando autorsearcher.py
|
||||
author = get_author_from_script(final_url)
|
||||
|
||||
content = get_article_content(final_url)
|
||||
news_item = {
|
||||
"titulo": title,
|
||||
"contenido": content,
|
||||
|
Reference in New Issue
Block a user