Instalación y configuración de la librería requests
La librería requests no viene incluida en la instalación estándar de Python, por lo que debes instalarla por separado. Ejecuta el siguiente comando en tu terminal:
pip install requests
Para verificar que la instalación fue exitosa, ejecuta:
import requests
print(requests.__version__)
¿Qué son las peticiones HTTP y por qué usar la librería requests?
HTTP (HyperText Transfer Protocol) es el protocolo de transferencia de datos entre un cliente y un servidor. requests es una librería externa de Python que simplifica enormemente el envío de peticiones HTTP en comparación con el módulo integrado urllib.
Principales ventajas de requests
- Simplicidad de uso y código más legible
- Soporte para todos los métodos HTTP (GET, POST, PUT, DELETE, PATCH)
- Manejo automático de datos JSON
- Soporte integrado para cookies y sesiones
- Configuración flexible de cabeceras y parámetros
- Gestión de errores y excepciones
- Soporte para servidores proxy y certificados SSL
Métodos HTTP principales con ejemplos prácticos
Peticiones GET: obtener datos
La petición GET se usa para obtener datos del servidor sin modificarlos.
import requests
# Petición GET simple
response = requests.get('https://api.github.com')
print(response.status_code) # 200
print(response.text) # Contenido de la respuesta
Pasar parámetros en una petición GET
# Pasar parámetros mediante un diccionario
params = {
'q': 'python',
'sort': 'stars',
'order': 'desc',
'page': 1
}
response = requests.get('https://api.github.com/search/repositories', params=params)
print(response.url) # Verificamos la URL final con los parámetros
Peticiones POST: enviar datos
La petición POST se usa para enviar datos al servidor y crear nuevos recursos.
# Petición POST con datos de formulario
data = {
'username': 'usuario_prueba',
'password': 'contraseña_segura',
'email': 'test@example.com'
}
response = requests.post('https://httpbin.org/post', data=data)
print(response.json())
Petición POST con datos JSON
# Envío de datos JSON
json_data = {
'title': 'Nuevo artículo',
'body': 'Contenido del artículo',
'userId': 1
}
response = requests.post(
'https://jsonplaceholder.typicode.com/posts',
json=json_data
)
print(response.json())
Peticiones PUT: actualizar datos
La petición PUT se usa para actualizar completamente un recurso existente.
update_data = {
'id': 1,
'title': 'Título actualizado',
'body': 'Nuevo contenido',
'userId': 1
}
response = requests.put(
'https://jsonplaceholder.typicode.com/posts/1',
json=update_data
)
print(f"Estado: {response.status_code}")
print(response.json())
Peticiones PATCH: actualización parcial
PATCH se usa para actualizar parcialmente un recurso.
patch_data = {'title': 'Título actualizado parcialmente'}
response = requests.patch(
'https://jsonplaceholder.typicode.com/posts/1',
json=patch_data
)
print(response.json())
Peticiones DELETE: eliminar datos
La petición DELETE se usa para eliminar recursos en el servidor.
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(f"Estado de eliminación: {response.status_code}")
Trabajar con cabeceras HTTP
Las cabeceras contienen metadatos sobre la petición y permiten enviar información adicional al servidor.
headers = {
'User-Agent': 'Mozilla