Python

Python Requests Module – Documentación oficial

El módulo de solicitudes de Python es una biblioteca de Python que permite realizar solicitudes HTTP de manera sencilla y eficiente. Proporciona una interfaz amigable para realizar solicitudes GET, POST, PUT, DELETE y otras operaciones HTTP. En este artículo, exploraremos la documentación oficial del módulo de solicitudes de Python y aprenderemos cómo utilizarlo en nuestros proyectos.

Instalación

Antes de comenzar a utilizar el módulo de solicitudes de Python, debemos asegurarnos de tenerlo instalado en nuestro entorno de desarrollo. Podemos instalarlo fácilmente utilizando pip, el administrador de paquetes de Python. Ejecutamos el siguiente comando en nuestra terminal:

pip install requests

Una vez que la instalación se haya completado, podemos importar el módulo de solicitudes en nuestro código Python utilizando la siguiente línea:

import requests

Uso básico

El módulo de solicitudes de Python proporciona una interfaz sencilla para realizar solicitudes HTTP. Podemos utilizar la función requests.get() para realizar una solicitud GET a una URL específica. Por ejemplo:

import requests

response = requests.get('https://www.example.com')

print(response.text)

En este ejemplo, realizamos una solicitud GET a la URL ‘https://www.example.com’ y almacenamos la respuesta en la variable ‘response’. Luego, imprimimos el contenido de la respuesta utilizando la propiedad ‘text’.

Parámetros de solicitud

El módulo de solicitudes de Python nos permite enviar parámetros junto con nuestras solicitudes. Podemos pasar estos parámetros como un diccionario utilizando el parámetro ‘params’ en la función requests.get(). Por ejemplo:

import requests

payload = {'key1': 'value1', 'key2': 'value2'}

response = requests.get('https://www.example.com', params=payload)

print(response.url)

En este ejemplo, enviamos los parámetros ‘key1’ y ‘key2’ con los valores ‘value1’ y ‘value2’ respectivamente. La función requests.get() los agrega automáticamente a la URL de la solicitud. Luego, imprimimos la URL completa utilizando la propiedad ‘url’ de la respuesta.

Respuestas

El módulo de solicitudes de Python nos proporciona varias propiedades y métodos para acceder a la respuesta de una solicitud. Algunos de los más comunes son:

  • response.status_code: devuelve el código de estado de la respuesta.
  • response.headers: devuelve los encabezados de la respuesta.
  • response.text: devuelve el contenido de la respuesta como texto.
  • response.json(): devuelve el contenido de la respuesta como un objeto JSON.
Recomendado:  How to Make an Area Plot in Python using Bokeh - Syntax and Examples

Podemos utilizar estas propiedades y métodos para analizar y manipular la respuesta según sea necesario en nuestro código.

Manejo de errores

El módulo de solicitudes de Python nos permite manejar errores de manera sencilla. Si una solicitud falla, se lanzará una excepción de tipo requests.exceptions.RequestException. Podemos utilizar un bloque try-except para capturar y manejar estas excepciones. Por ejemplo:

import requests

try:
    response = requests.get('https://www.example.com')
    response.raise_for_status()
except requests.exceptions.RequestException as e:
    print('Error:', e)

En este ejemplo, intentamos realizar una solicitud GET a la URL ‘https://www.example.com’. Si la solicitud falla, se lanzará una excepción de tipo requests.exceptions.RequestException. Utilizamos el método response.raise_for_status() para verificar si la solicitud fue exitosa. Si no lo fue, imprimimos un mensaje de error.

Autenticación

El módulo de solicitudes de Python nos permite realizar solicitudes HTTP autenticadas utilizando diferentes métodos de autenticación, como Basic, Digest y OAuth. Podemos pasar las credenciales de autenticación utilizando el parámetro ‘auth’ en la función requests.get(). Por ejemplo:

import requests

response = requests.get('https://api.example.com', auth=('username', 'password'))

print(response.text)

En este ejemplo, realizamos una solicitud GET a la URL ‘https://api.example.com’ utilizando autenticación básica. Pasamos las credenciales de autenticación como una tupla de usuario y contraseña al parámetro ‘auth’.

Envío de archivos

El módulo de solicitudes de Python nos permite enviar archivos junto con nuestras solicitudes. Podemos utilizar el parámetro ‘files’ en la función requests.post() para enviar archivos. Por ejemplo:

import requests

files = {'file': open('example.txt', 'rb')}

response = requests.post('https://www.example.com/upload', files=files)

print(response.text)

En este ejemplo, abrimos el archivo ‘example.txt’ en modo de lectura binaria y lo pasamos al parámetro ‘files’ en la función requests.post(). La solicitud POST se realiza a la URL ‘https://www.example.com/upload’ y el archivo se envía junto con la solicitud.

Sesiones

El módulo de solicitudes de Python nos permite utilizar sesiones para mantener el estado entre múltiples solicitudes. Podemos crear una sesión utilizando la clase requests.Session() y realizar solicitudes utilizando los métodos de la sesión, como session.get() y session.post(). Por ejemplo:

import requests

session = requests.Session()

response1 = session.get('https://www.example.com')
response2 = session.post('https://www.example.com/login', data={'username': 'admin', 'password': 'password'})

print(response2.text)

En este ejemplo, creamos una sesión utilizando la clase requests.Session(). Luego, realizamos una solicitud GET a la URL ‘https://www.example.com’ y una solicitud POST a la URL ‘https://www.example.com/login’ con datos de inicio de sesión. La sesión mantiene el estado entre las solicitudes, lo que nos permite realizar acciones como iniciar sesión y luego realizar otras operaciones.

Recomendado:  How to Make the First Column an Index in Python - Step-by-Step Guide

Proxies

El módulo de solicitudes de Python nos permite utilizar proxies para enrutar nuestras solicitudes a través de servidores intermedios. Podemos pasar la configuración del proxy utilizando el parámetro ‘proxies’ en la función requests.get() o en la sesión. Por ejemplo:

import requests

proxies = {
  'http': 'http://proxy.example.com',
  'https': 'https://proxy.example.com',
}

response = requests.get('https://www.example.com', proxies=proxies)

print(response.text)

En este ejemplo, configuramos un proxy HTTP y un proxy HTTPS utilizando el diccionario ‘proxies’. Luego, realizamos una solicitud GET a la URL ‘https://www.example.com’ utilizando el proxy configurado.

SSL/TLS

El módulo de solicitudes de Python nos permite controlar la verificación SSL/TLS al realizar solicitudes HTTPS. Podemos desactivar la verificación utilizando el parámetro ‘verify’ en la función requests.get() o en la sesión. Por ejemplo:

import requests

response = requests.get('https://www.example.com', verify=False)

print(response.text)

En este ejemplo, desactivamos la verificación SSL/TLS al realizar una solicitud GET a la URL ‘https://www.example.com’. Esto puede ser útil en situaciones donde el certificado SSL/TLS no es válido o confiable.

Personalización de encabezados

El módulo de solicitudes de Python nos permite personalizar los encabezados de nuestras solicitudes. Podemos pasar los encabezados como un diccionario utilizando el parámetro ‘headers’ en la función requests.get() o en la sesión. Por ejemplo:

import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}

response = requests.get('https://www.example.com', headers=headers)

print(response.text)

En este ejemplo, configuramos el encabezado ‘User-Agent’ utilizando el diccionario ‘headers’. Luego, realizamos una solicitud GET a la URL ‘https://www.example.com’ con el encabezado personalizado.

Manejo de cookies

El módulo de solicitudes de Python nos permite manejar cookies de manera sencilla. Podemos enviar cookies con nuestras solicitudes utilizando el parámetro ‘cookies’ en la función requests.get() o en la sesión. Por ejemplo:

import requests

cookies = {'session_id': '123456789'}

response = requests.get('https://www.example.com', cookies=cookies)

print(response.text)

En este ejemplo, enviamos una cookie con nombre ‘session_id’ y valor ‘123456789’ utilizando el diccionario ‘cookies’. Luego, realizamos una solicitud GET a la URL ‘https://www.example.com’ con la cookie enviada.

Redirecciones

El módulo de solicitudes de Python nos permite controlar el manejo de redirecciones al realizar solicitudes. Podemos seguir automáticamente las redirecciones utilizando el parámetro ‘allow_redirects’ en la función requests.get() o en la sesión. Por ejemplo:

import requests

response = requests.get('https://www.example.com', allow_redirects=True)

print(response.url)

En este ejemplo, permitimos que las redirecciones se sigan automáticamente al realizar una solicitud GET a la URL ‘https://www.example.com’. Luego, imprimimos la URL final después de seguir todas las redirecciones utilizando la propiedad ‘url’ de la respuesta.

Recomendado:  Python Data Analytics: Mejores herramientas para análisis de datos

Control de tiempo de espera

El módulo de solicitudes de Python nos permite controlar el tiempo de espera de nuestras solicitudes. Podemos configurar el tiempo de espera utilizando los parámetros ‘timeout’ en la función requests.get() o en la sesión. Por ejemplo:

import requests

response = requests.get('https://www.example.com', timeout=5)

print(response.text)

En este ejemplo, configuramos un tiempo de espera de 5 segundos al realizar una solicitud GET a la URL ‘https://www.example.com’. Si la solicitud no se completa dentro del tiempo de espera, se lanzará una excepción de tipo requests.exceptions.Timeout.

Manejo de conexiones

El módulo de solicitudes de Python nos permite controlar el manejo de conexiones al realizar solicitudes. Podemos utilizar la clase requests.adapters.HTTPAdapter() para personalizar el comportamiento de las conexiones. Por ejemplo:

import requests

adapter = requests.adapters.HTTPAdapter(pool_connections=100, pool_maxsize=100)

session = requests.Session()
session.mount('http://', adapter)
session.mount('https://', adapter)

response = session.get('https://www.example.com')

print(response.text)

En este ejemplo, creamos un adaptador HTTP con un tamaño máximo de 100 conexiones. Luego, creamos una sesión y montamos el adaptador en los prefijos ‘http://’ y ‘https://’. Finalmente, realizamos una solicitud GET a la URL ‘https://www.example.com’ utilizando la sesión personalizada.

Interceptación de solicitudes

El módulo de solicitudes de Python nos permite interceptar y modificar solicitudes utilizando el parámetro ‘hooks’ en la función requests.get() o en la sesión. Por ejemplo:

import requests

def modify_request(request):
    request.headers['User-Agent'] = 'Modified User-Agent'
    return request

hooks = {'pre_request': modify_request}

response = requests.get('https://www.example.com', hooks=hooks)

print(response.text)

En este ejemplo, definimos una función ‘modify_request’ que modifica el encabezado ‘User-Agent’ de la solicitud. Luego, configuramos el gancho ‘pre_request’ con la función ‘modify_request’. Cuando se realiza una solicitud GET a la URL ‘https://www.example.com’, la función ‘modify_request’ se ejecuta antes de enviar la solicitud.

Manejo de certificados

El módulo de solicitudes de Python nos permite especificar certificados personalizados al realizar solicitudes HTTPS. Podemos pasar el archivo de certificado utilizando el parámetro ‘cert’ en la función requests.get() o en la sesión. Por ejemplo:

import requests

response = requests.get('https://www.example.com', cert='path/to/certificate.pem')

print(response.text)

En este ejemplo, especificamos un archivo de certificado utilizando el parámetro ‘cert’ al realizar una solicitud GET a la URL ‘https://www.example.com’. Esto puede ser útil en situaciones donde necesitamos utilizar un certificado personalizado para autenticarnos con el servidor.

Conclusión

El módulo de solicitudes de Python es una herramienta poderosa y fácil de usar para realizar solicitudes HTTP en nuestros proyectos. En este artículo, hemos explorado la documentación oficial del módulo de solicitudes de Python y hemos aprendido cómo utilizarlo para realizar solicitudes, manejar respuestas, autenticar, enviar archivos y mucho más. Espero que esta documentación te haya sido útil y te ayude a aprovechar al máximo el módulo de solicitudes de Python en tus proyectos.

Author

osceda@hotmail.com

Leave a comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *