Automatización en la redacción con Python, inteligencia artificial y web scraping

En el campo de la comunicación social, la adaptabilidad y la innovación son claves para superar los desafíos tecnológicos. 

Presento un script en Python que no solo automatiza la publicación de notas de prensa en un sitio web de WordPress, sino que también integra la inteligencia artificial de GPT-4 para optimizar el contenido.

La técnica emplea es el web scraping

Este enfoque es útil cuando la fuente de noticias no ofrece un Really Simple Syndication (RSS) con el contenido a extraer, de manera directa, como es el caso de la página web de la Defensoría del Pueblo que tomé para esta prueba.

El sitio emplea Wordpress, y si bien cuenta con un feed como todo CMS de ese tipo, éste no tiene incluído el texto completo de las notas de prensa, y aquí viene la complicación, el contenido de cada noticia está referenciado con un enlace a un archivo PDF.


El Método de Extracción Directa

Acceso a la Página Web: 

El script accede directamente a la página web utilizando "requests". 

Análisis de Contenido: 

Utilizando BeautifulSoup, analiza el HTML de la página para identificar y extraer las notas de prensa. 

page = requests.get(URL)
soup = BeautifulSoup(page.content, "html.parser")
notas_prensa = soup.find_all("div", class_="card mb-3 col-12")

Descarga de PDFs: 

Una vez que tiene los enlaces, el script procede a descargar los archivos PDF. Emplea "requests" para obtener el contenido del archivo y lo guarda en una carpeta local de mi pc. Luego, con la ayuda de PyPDF2, extrae el texto de estos PDFs, convirtiendo los documentos en texto plano.

respuesta = requests.get(enlace_pdf)
with open(ruta_completa, 'wb') as f:
    f.write(respuesta.content)

with open(ruta_completa, 'rb') as file:
    pdf_reader = PdfReader(file)
    text = ""
    for page in pdf_reader.pages:
        text += page.extract_text() + "\n"

Reescritura con ChatGPT: 

Aquí es donde el script reescribe las notas de prensa. En lugar de publicar el contenido tal como está, lo envía a GPT-4 para un procesamiento avanzado. Esta IA no solo resume la información, sino que también la adapta a un estilo más adecuado para la publicación, manteniendo la esencia informativa pero con un enfoque más periodístico y atractivo para el lector.

Integración con ChatGPT para la Optimización del Contenido

El script utiliza una API para enviar el texto extraído a GPT-4. Se realiza un procesamiento avanzado que incluye la mejora del estilo, la legibilidad y la precisión del contenido. 

Se determina el modelo, máximo de tokens, temperatura y la instrucción (prompt).

response = requests.post(API_URL, json=data, headers=headers_gpt)
if response.status_code == 200:
    resumen = response.json()["choices"][0]["message"]["content"]

Beneficios de la IA en el Periodismo: 

El empleo del modelo GPT-4 automatiza la actividad de reescribir, resumir, corregir o adaptar un contenido remoto. Ayuda a los comunicadores a presentar noticias de forma atractiva, coherente y precisa, un aspecto bien recibido en la era de la información rápida y el consumo de noticias en línea.

Publicación Automática en WordPress

Luego del procesamiento con GPT, el script se encarga de la fase final: la publicación en la instalación de WordPress.

Automatización de la Publicación

El contenido optimizado por GPT se formatea adecuadamente para la publicación en la web. Se emplea una autenticación segura, el script envía el contenido mejorado a un sitio de WordPress, utilizando la API de WordPress. 

Esto se realiza con una solicitud HTTP POST que incluye el título y el contenido de la noticia. 

credentials = base64.b64encode(f'{username}:{password}'.encode('utf-8')).decode('utf-8')
headers = {
    'Authorization': f'Basic {credentials}',
    'Content-Type': 'application/json'
}
response = requests.post(post_url, headers=headers, json=post_data)

Aclaración: Base64 no es un método de encriptación, sino de codificación. Esto significa que las credenciales codificadas pueden ser fácilmente decodificadas por cualquiera que intercepte la solicitud. Por lo tanto, no proporciona seguridad real. Para llevarlo a producción hay que reforzar esta parte.

Conclusión: Automatización e inteligencia artificial (IA) en el Periodismo Digital

 La combinación de técnicas de web scraping, procesamiento de texto con IA y publicación automatizada en WordPress ofrece una solución para la gestión de contenido. 

Con las tareas repetitivas y el procesamiento de datos manejados por el script, los comunicadores pueden centrarse en aspectos más estratégicos y creativos del periodismo.

Mientras que la IA ofrece mejoras en la eficiencia, es necesario aún supervisar y asegurar la precisión y la ética en la presentación de las noticias.

Dado que el campo del periodismo digital está en constante evolución, los comunicadores deben estar preparados para adaptarse y aprender nuevas herramientas y técnicas.

Lista de tecnologías empleadas:


Python: 

El lenguaje de programación principal utilizado para desarrollar el script. 

Requests: Una biblioteca de Python utilizada para realizar solicitudes HTTP, esencial para acceder a la página web de la Defensoría del Pueblo y comunicarse con la API de WordPress y ChatGPT. 

BeautifulSoup: 

Una biblioteca de Python para analizar documentos HTML y XML. Se utiliza para procesar el contenido de la página web y extraer las notas de prensa. 

PyPDF2: 

Una biblioteca de Python para trabajar con archivos PDF. Se emplea para extraer texto de los documentos PDF descargados. 

Base64 Encoding: 

Método utilizado para codificar las credenciales de autenticación en el script. 

WordPress API: 

La interfaz de programación de aplicaciones de WordPress que permite al script publicar noticias automáticamente en un sitio web de WordPress. 

OpenAI's ChatGPT API: 

API de ChatGPT de OpenAI utilizada para enviar el texto extraído y recibir una versión procesada y mejorada. 

JSON (JavaScript Object Notation): 

Formato utilizado para estructurar los datos enviados y recibidos a través de las APIs. 

HTTPS (Hypertext Transfer Protocol Secure):

Protocolo de comunicación utilizado para las solicitudes y respuestas entre el script y los servicios web (WordPress y ChatGPT API).



Entradas más populares de este blog

Texto a Voz con HTML y Javascript

Experiencia VR Interactiva con A-Frame: Tutorial para Principiantes