Tutorial de requests de Python

La biblioteca de requests es una de las partes integrales de Python para realizar requests HTTP a una URL específica. Ya sea que se trate de API REST o Web Scrapping, las requests deben aprenderse para continuar con estas tecnologías. Cuando uno realiza una solicitud a un URI, devuelve una respuesta. Las requests de Python proporcionan funcionalidades integradas para administrar tanto la solicitud como la respuesta.

python-requests-module

Contenido

¿Por qué aprender el módulo de requests de Python?

  • Requests es una biblioteca HTTP con licencia de Apache2, que permite enviar requests HTTP/1.1 usando Python.
  • Para jugar con la web, las requests de Python son imprescindibles. Ya sea que se trate de acceder a las API, descargar páginas completas de Facebook y muchas cosas más interesantes, tendrá que realizar una solicitud a la URL.
  • Las requests juegan un papel importante en el manejo de las API REST y Web Scrapping .
  • Verifique un ejemplo de secuencia de comandos de Python usando requests y desguace web: implementando el desguace web en Python con BeautifulSoup
  • Artículos recientes sobre requests !!

    Requests de instalación

    La instalación de las requests depende del tipo de sistema operativo que se esté usando, el comando básico en cualquier lugar sería abrir una terminal de comando y ejecutar,

pip install requests

El método básico para la instalación de requests en cualquier sistema operativo es tomar los archivos base e instalar requests manualmente y Requests se desarrolla activamente en GitHub, donde el código siempre está disponible. Para el código, visite aquí .
Puedes clonar el repositorio público:

git clone git://github.com/psf/requests.git

Una vez que tenga una copia de la fuente, puede incrustarla en su propio paquete de Python o instalarla fácilmente en los paquetes de su sitio:

cd requests
pip install .

Para más pago – Cómo instalar requests en Python – Para Windows, Linux, Mac

Hacer una solicitud

El módulo de requests de Python tiene varios métodos integrados para realizar requests Http a un URI específico mediante requests GET, POST, PUT, PATCH o HEAD. Una solicitud Http está destinada a recuperar datos de un URI específico o enviar datos a un servidor. Funciona como un protocolo de solicitud-respuesta entre un cliente y un servidor. Demostremos cómo hacer una solicitud GET a un punto final.
El método GET se usa para recuperar información del servidor dado usando un URI dado. El método GET envía la información de usuario codificada adjunta a la solicitud de página. La página y la información codificada están separadas por el ‘?’ personaje.
Por ejemplo:

https://www.google.com/search?q=hello
Cómo hacer una solicitud GET a través de Python Requests

El módulo de requests de Python proporciona un método integrado llamado get() para realizar una solicitud GET a un URI específico.

Sintaxis –

requests.get(url, params={key: value}, args)

Ejemplo –

Intentemos hacer una solicitud a las API de github para fines de ejemplo.

import requests
   
# Making a GET request
r = requests.get('https://api.github.com/users/naveenkrnl')
  
# check status code for response received
# success code - 200
print(r)
  
# print content of request
print(r.content)

guarde este archivo como request.py y a través de la ejecución del terminal,

python request.py

Producción –
python-requests-get-method

Para obtener más información, visite el método GET: requests de Python

Métodos de solicitud Http –

Método Descripción
OBTENER El método GET se usa para recuperar información del servidor dado usando un URI dado.
CORREO El método de solicitud POST solicita que un servidor web acepte los datos incluidos en el cuerpo del mensaje de solicitud, muy probablemente para almacenarlos.
PONER El método PUT solicita que la entidad adjunta se almacene bajo el URI proporcionado. Si el URI hace referencia a un recurso ya existente, se modifica y si el URI no apunta a un recurso existente, entonces el servidor puede crear el recurso con ese URI.
ELIMINAR El método DELETE elimina el recurso especificado
CABEZA El método HEAD solicita una respuesta idéntica a la de una solicitud GET, pero sin el cuerpo de la respuesta.
PARCHE Se utiliza para modificar capacidades. La solicitud PATCH solo debe contener los cambios en el recurso, no el recurso completo

Objeto de respuesta

Cuando uno realiza una solicitud a un URI, devuelve una respuesta. Este objeto de respuesta en términos de python es devuelto por requestes.method(), siendo el método: obtener, publicar, poner, etc. La respuesta es un objeto poderoso con muchas funciones y atributos que ayudan a normalizar los datos o crear porciones ideales de código. Por ejemplo, response.status_code devuelve el código de estado de los propios encabezados y se puede comprobar si la solicitud se procesó correctamente o no.
El objeto de respuesta se puede utilizar para implicar muchas características, métodos y funcionalidades.

Ejemplo :

# import requests module
import requests
  
# Making a get request
response = requests.get('https://api.github.com/')
  
# print request object
print(response.url)
  
# print status code
print(response.status_code)

Guarde este archivo como request.py y ejecútelo usando el siguiente comando

Python request.py

response-python-requests
Status code 200 indicates that request was made successfully.

Métodos de respuesta

Método Descripción
respuesta.encabezados response.headers devuelve un diccionario de encabezados de respuesta.
respuesta.codificación response.encoding devuelve la codificación utilizada para decodificar response.content.
respuesta.transcurrida response.elapsed devuelve un objeto timedelta con el tiempo transcurrido desde el envío de la solicitud hasta la llegada de la respuesta.
respuesta.cerrar() response.close() cierra la conexión con el servidor.
respuesta.contenido response.content devuelve el contenido de la respuesta, en bytes.
respuestas.cookies response.cookies devuelve un objeto CookieJar con las cookies enviadas desde el servidor.
respuesta.historial response.history devuelve una lista de objetos de respuesta que contienen el historial de requests (url).
respuesta.is_permanent_redirect response.is_permanent_redirect devuelve True si la respuesta es la URL redirigida permanente; de ​​lo contrario, False.
respuesta.is_redirect response.is_redirect devuelve True si la respuesta fue redirigida, de lo contrario, False.
respuesta.iter_content() response.iter_content() itera sobre response.content.
respuesta.json() response.json() devuelve un objeto JSON del resultado (si el resultado se escribió en formato JSON, si no, genera un error).
respuesta.url response.url devuelve la URL de la respuesta.
respuesta.texto response.text devuelve el contenido de la respuesta, en Unicode.
respuesta.estado_código response.status_code devuelve un número que indica el estado (200 es correcto, 404 es no encontrado).
respuesta.solicitud response.request devuelve el objeto de solicitud que solicitó esta respuesta.
respuesta.motivo response.reason devuelve un texto correspondiente al código de estado.
respuesta.raise_for_status() response.raise_for_status() devuelve un objeto HTTPError si se ha producido un error durante el proceso.
respuesta.ok response.ok devuelve True si status_code es menor que 200; de lo contrario, False.
respuesta.enlaces response.links devuelve los enlaces del encabezado.

Autenticación mediante requests de Python

La autenticación se refiere a otorgar permisos a un usuario para acceder a un recurso en particular. Dado que no se puede permitir que todos accedan a los datos de cada URL, uno requeriría autenticación principalmente. Para lograr esta autenticación, normalmente se proporcionan datos de autenticación a través del encabezado de autorización o un encabezado personalizado definido por el servidor.

Ejemplo –

# import requests module
import requests
from requests.auth import HTTPBasicAuth
  
# Making a get request
response = requests.get('https://api.github.com / user, ',
            auth = HTTPBasicAuth('user', 'pass'))
  
# print request object
print(response)

Reemplace «usuario» y «contraseña» con su nombre de usuario y contraseña. Autenticará la solicitud y devolverá una respuesta 200 o devolverá el error 403.
authenticate-python-requests
Para obtener más información, visite: Autenticación mediante requests de Python

Verificación de certificado SSL

Requests verifica los certificados SSL para requests HTTPS, al igual que un navegador web. Los certificados SSL son pequeños archivos de datos que vinculan digitalmente una clave criptográfica a los detalles de una organización. A menudo, un sitio web con un certificado SSL se denomina sitio web seguro. De manera predeterminada, la verificación SSL está habilitada y las requests generarán un SSLError si no puede verificar el certificado.

Deshabilitar la verificación del certificado SSL

Intentemos acceder a un sitio web con un certificado SSL no válido, utilizando requests de Python

# import requests module
import requests
  
# Making a get request
response = requests.get('https://expired.badssl.com/')
  
# print request object
print(response)

Salida: –
ssl-certificate-verification-python-requests
Este sitio web no tiene configuración SSL, por lo que genera este error.
también se puede pasar el enlace al certificado para su validación solo a través de requests de python.

# import requests module
import requests
  
# Making a get request
response = requests.get('https://github.com', verify ='/path/to/certfile')
  
# print request object
print(response)

Esto funcionaría en caso de que la ruta proporcionada sea correcta para el certificado SSL para github.com.
Para obtener más información, visite Verificación de certificado SSL: requests de Python

Objetos de sesión

El objeto de sesión permite persistir ciertos parámetros a través de las requests. También conserva las cookies en todas las requests realizadas desde la instancia de sesión y utilizará la agrupación de conexiones de urllib3. Por lo tanto, si se realizan varias requests al mismo host, se reutilizará la conexión TCP subyacente, lo que puede resultar en un aumento significativo del rendimiento. Un objeto de sesión todos los métodos a partir de requests.

Uso de objetos de sesión

Ilustremos el uso de objetos de sesión configurando una cookie en una URL y luego haciendo una solicitud nuevamente para verificar si la cookie está configurada.

# import requests module
import requests
  
# create a session object
s = requests.Session()
  
# make a get request
s.get('https://httpbin.org/cookies/set/sessioncookie/123456789')
  
# again make a get request
r = s.get('https://httpbin.org/cookies')
  
# check if cookie is still set
print(r.text)


Salida:

session-objects-python-requests
Para obtener más información, visite – Objetos de sesión – Requests de Python

Publicación traducida automáticamente

Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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