Curso de Ingeniería de Datos con Python

Cómo hacer solicitudes HTTP con Python Requests

Curso de Ingeniería de Datos con Python

Contenido del curso

Web scraping

Pandas

Cómo hacer solicitudes HTTP con Python Requests

Resumen

Aprende a experimentar con la web desde Python con Requests. En minutos, haces una solicitud GET, inspeccionas el objeto response en Jupyter Notebook y analizas status code, headers, cookies y el HTML minificado. Con estas técnicas podrás empezar a extraer datos y entender comportamientos como CORS y la verificación OPTIONS.

¿Cómo hacer solicitudes HTTP con Python Requests?

Para solicitar documentos en la web, usa URLs y los verbos HTTP. Con Requests puedes usar GET para obtener recursos y POST para enviar datos. También aparecen PATCH, PUT (mencionado como update), DELETE y OPTIONS.

  • GET: obtener recursos de la web.
  • POST: enviar datos a un servidor.
  • PATCH/PUT: actualizar datos con diferencias semánticas.
  • DELETE: borrar recursos.
  • OPTIONS: verificación previa frecuente en navegadores; clave cuando falla por CORS.

¿Cómo importarlo e iniciar?

Si tu ambiente virtual está activo, Requests ya debería estar instalado. Importa y realiza tu primera solicitud.

import requests response = requests.get("https://platzi.com") response # objeto response con la respuesta del servidor

¿Qué devuelve la solicitud?

  • Un objeto response con datos de la respuesta.
  • Acceso a status code, headers, cookies y contenido.
  • Base para inspección y extracción de información.

¿Cómo inspeccionar el objeto response en Jupyter?

Explora rápido la documentación y los atributos del objeto para entender qué hay disponible y cómo usarlo.

¿Qué atajos usar para documentación y código fuente?

  • Símbolo de interrogación para ayuda: escribe response? y ejecuta.
  • Doble interrogación para ver implementación: response??.
  • Directorio de atributos y métodos:
print(dir(response))

Esto revela que es una clase con atributos como status_code, headers y más, además de su docstring.

¿Cómo leer status code y headers?

Consulta el estado y los metadatos de la respuesta. Un 200 indica que todo salió bien.

response.status_code # 200 # headers es un diccionario tipo mapeo response.headers # ejemplos de acceso response.headers["Date"] # fecha del servidor response.headers.get("Content-Type") # tipo de contenido, p. ej. text/html response.headers.get("Set-Cookie") # cookies enviadas por el servidor
  • Los headers explican tipo de contenido, idioma, cookies, dominio y proveedores como Cloudflare.
  • Usa notación de llaves para acceder a valores específicos.

¿Cómo interpretar el HTML y comenzar a extraer datos?

El cuerpo de la respuesta es HTML. A menudo llega minificado para ahorrar ancho de banda, pero contiene toda la información clave.

html = response.text # HTML de la página

¿Qué notarás al revisar el HTML?

  • Título de la página: “Platzi cursos online profesionales de tecnología”.
  • Íconos y metadatos para navegadores.
  • Archivos CSS y scripts incluidos.
  • Scripts de analítica como Google Analytics y Facebook.

Con esto tienes lo esencial para:

  • Hacer solicitudes HTTP programáticas.
  • Inspeccionar status code y headers.
  • Leer cookies y entender proveedores como Cloudflare.
  • Analizar HTML minificado y detectar recursos como CSS y scripts.
  • Reconocer situaciones de CORS y peticiones OPTIONS que pueden fallar, especialmente en una single page application.

¿Quieres practicar? Comparte qué páginas probaste con Requests, si encontraste errores típicos en single page applications y qué datos lograste extraer. Tu experiencia puede ayudar a otros a avanzar.