Curso de Python Intermedio para  Entornos virtuales y PEP8

Conectar Python a NewsAPI con parámetros reales

Curso de Python Intermedio para Entornos virtuales y PEP8

Contenido del curso

Conectar Python a NewsAPI con parámetros reales

Resumen

Conectar Python a NewsAPI es el paso donde tu código deja de ser teoría y empieza a traer noticias reales desde un servidor externo. Si ya entiendes los parámetros dinámicos, aquí aprenderás a crear una API key, armar una URL válida y transformar la respuesta en datos que puedas leer. Es una guía práctica para quien aprende integraciones con APIs en Python.

La idea es sencilla pero poderosa: escribes una consulta como Python, la envías a NewsAPI y recibes de vuelta una lista de artículos de noticias reales. Vamos paso a paso.

Cómo obtener una API key de NewsAPI

Antes de escribir una sola línea de código, necesitas tu llave de acceso. En newsapi.org hay un botón para registrarte, llenas un formulario, le das submit y obtienes tu API key de inmediato [00:38].

Aquí viene lo importante: esta API key es una llave privada y no debe ser pública. No la compartas ni la subas al repositorio. En clases futuras verás el manejo adecuado, pero por ahora, para facilitar el aprendizaje, la colocas en el código como una constante [01:00].

¿Qué es una API key? Es una credencial única que identifica quién hace la petición a un servicio. Funciona como una contraseña que autoriza tu acceso a la API, por eso nunca debe hacerse pública.

Después de la llave, necesitas la URL base. La encuentras en la sección Get Started Guide de la documentación, específicamente en Searching for news articles, que es justo lo que quieres hacer [01:36]. Esa URL la guardas en otra variable constante.

Qué paquetes de Python necesitas para hacer el request

Python ya incluye lo que necesitas dentro del paquete urllib. De ahí usas dos módulos clave:

  • request: te permite hacer las peticiones como si fueras un navegador web.
  • parse: te ayuda a darle a la URL el formato correcto para que el request sea válido.

El primer paso es construir el query string. Usas urllib.parse.urlencode para que Python renderice tus parámetros en el formato adecuado para URLs [02:50]. Esos parámetros son la query (tu búsqueda) y la API key.

Cuando imprimes el query string ves cómo Python lo arma: separa la consulta con una q, agrega un ampersand y suma la API key [05:00]. Así es como los servidores se comunican pasando parámetros tipo get.

¿Por qué usar urlencode en vez de armar la URL a mano? Porque escribir el formato desde cero es propenso a errores. urlencode aplica la misma estrategia que la documentación oficial y garantiza que la URL sea válida.

Luego concatenas la URL base con el query string usando un literal string, y al imprimirla ves la URL completa: la base más todos los parámetros que le pasas al request [05:40].

Cómo leer y convertir la respuesta del servidor

Para hacer la petición usas un context manager con with, que abre la URL y define un response. Le pasas la URL creada y una configuración extra como el timeout, que llega de forma dinámica [03:40].

Al principio, cuando haces read(), el servidor te devuelve la información en bytes con un status OK y formato JSON, pero difícil de leer [04:20]. Aquí entra el proceso de limpieza en dos movimientos:

  1. Decode: conviertes esos bytes en texto. Como sabes que el formato es UTF-8, lo decodificas con ese estándar [06:16].
  2. json.loads: importas el paquete json y usas json.loads para cargar ese texto en un diccionario, que defines como data y retornas [06:40].

Recuerda que los imports siempre van en la parte de arriba del archivo. En esta etapa se hace todo en un mismo archivo, pero más adelante se arma una arquitectura correcta [07:04].

¿Qué hace json.loads en Python? Convierte una cadena de texto en formato JSON válido en un diccionario de Python. Así puedes acceder a los datos con claves en vez de leer texto plano.

Cómo recorrer los artículos que devuelve NewsAPI

Cuando guardas la respuesta en una variable response data y la imprimes completa, ves un diccionario grande con claves como status, totalResults y articles [07:50].

Un truco útil: puedes usar keys() para ver qué llaves llegan del servidor antes de acceder a ellas. Al confirmar que existe la clave articles, la accedes y recibes una lista de objetos, donde cada uno tiene su title y otros datos [08:20].

Para mostrarlos de forma limpia, cierras con un for:

  • Recorres cada article de la lista.
  • Imprimes solo el title para no saturar la consola.

Al ejecutar, aparece la lista completa de noticias relacionadas con tu búsqueda [08:50]. Con eso ya tienes una integración real funcionando: pasas Python como consulta y recibes titulares reales.

Si te quedaste con dudas sobre cómo funcionan los requests y los responses, vale la pena volver al curso de fundamentos de ingeniería de software. Y si quieres experimentar más, revisa la documentación de NewsAPI para descubrir qué otros parámetros puedes agregar a tu consulta.

¿Ya probaste tu integración con otra palabra clave? Cuéntame qué noticias te devolvió.