Cómo hacer solicitudes web con Python: Guía práctica

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es la librería requests y para qué sirve?

La librería requests es una de las más populares y fáciles de usar en Python para realizar solicitudes HTTP. Proporciona una interfaz sencilla para enviar solicitudes GET, POST, PUT, DELETE y otros tipos de solicitudes HTTP con una cantidad mínima de código.

Principales ventajas de la librería requests

  • Sintaxis simple y API intuitiva
  • Soporte integrado para sesiones y gestión de cookies
  • Procesamiento automático de JSON y formularios
  • Soporte para diferentes métodos de autenticación
  • Posibilidad de trabajar con servidores proxy
  • Documentación detallada en español e inglés
  • Comunidad activa de desarrolladores

Instalación de la librería requests

La instalación de la librería requests se realiza a través del gestor de paquetes pip. El proceso de instalación depende de la versión de Python que estés utilizando.

Instalación estándar

pip install requests

Instalación para Python 3

Si tienes varias versiones de Python instaladas en el sistema, usa el comando pip3 para instalar en el entorno de Python 3:

pip3 install requests

Verificar la instalación

Después de la instalación, puedes verificar que todo haya salido bien importando la librería en la consola de Python:

import requests
print(requests.__version__)

Fundamentos de las solicitudes GET

Las solicitudes GET se utilizan para obtener datos de un servidor web. Es el tipo de solicitud HTTP más común en el desarrollo web.

Solicitud GET simple

import requests

response = requests.get('https://api.github.com')
print(response.status_code)  # Código de estado (200 - OK)
print(response.text)         # Cuerpo de la respuesta como cadena de texto

Analizar la respuesta del servidor

Al trabajar con solicitudes GET, es importante analizar correctamente la respuesta obtenida. El objeto response contiene muchos atributos útiles:

  • status_code - código de estado HTTP de la respuesta
  • text - contenido de la respuesta en formato de texto
  • content - contenido de la respuesta en bytes
  • headers - encabezados de la respuesta
  • url - URL final de la solicitud

Trabajar con parámetros de consulta

Los parámetros de URL se pueden pasar mediante un diccionario, lo que hace que el código sea más legible y fácil de modificar:

params = {
    'q': 'programación python',
    'page': 2,
    'limit': 50
}

response = requests.get('https://www.example.com/search', params=params)
print(response.url)  # Muestra la URL generada con los parámetros

Solicitudes POST y envío de datos al servidor

Las solicitudes POST se utilizan para enviar datos al servidor, por ejemplo, al completar formularios o crear nuevos registros en una base de datos.

Envío de datos de formulario

data = {
    'username': 'admin',
    'password': '12345',
    'email': 'admin@example.com'
}

response = requests.post('https://httpbin.org/post', data=data)
print(response.text)

Envío de datos JSON

Al trabajar con APIs modernas, a menudo es necesario enviar datos en formato JSON. La librería requests establece automáticamente el Content-Type correcto al usar el parámetro json:

import json

data = {
    'name': 'Juan Pérez',
    'age': 30,
    'city': 'Madrid'
}

response = requests.post('https://httpbin.org/post', json=data)
result = response.json()  # Conversión automática de la respuesta a JSON
print(result)

Diferencias entre los parámetros data y json

  • El parámetro data envía los datos como un formulario (application/x-www-form-urlencoded)
  • El parámetro json envía los datos en formato JSON (application/json)

Blogs

Book Recommendations