¿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 respuestatext- contenido de la respuesta en formato de textocontent- contenido de la respuesta en bytesheaders- encabezados de la respuestaurl- 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
dataenvía los datos como un formulario (application/x-www-form-urlencoded) - El parámetro
jsonenvía los datos en formato JSON (application/json)