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.
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 –
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
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.
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: –
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:
Para obtener más información, visite – Objetos de sesión – Requests de Python
¿Escribir código en un comentario? Utilice ide.geeksforgeeks.org , genere un enlace y compártalo aquí.
Publicación traducida automáticamente
Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA