Cómo hacer solicitudes HTTP con Python Requests

Clase 12 de 38Curso de Ingeniería de Datos con Python

Contenido del curso

Web scraping

Pandas

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.