El Biblioteca de solicitudes en Python es una de las partes integrales de Python para realizar solicitudes HTTP a una URL específica. Ya sean API REST o Web Scraping, es necesario aprender las solicitudes para seguir adelante con estas tecnologías. Cuando uno realiza una solicitud a un URI, devuelve una respuesta. Las solicitudes de Python proporcionan funcionalidades integradas para gestionar tanto la solicitud como la respuesta.
'fórmula de albañil'
En este tutorial, exploraremos ¿Qué es? Biblioteca de solicitudes de Python , Cómo hacer OBTENER solicitudes a través de solicitudes de Python, objetos y métodos de respuesta, autenticación mediante solicitudes de Python, etc.
Tabla de contenidos
- ¿Qué es el módulo de solicitudes de Python?
- Cómo realizar una solicitud GET a través de solicitudes de Python
- Métodos de solicitud HTTP
- Objeto de respuesta
- Métodos de respuesta
- Autenticación mediante solicitudes de Python
- Verificación del certificado SSL
- Objetos de sesión
- Conclusión
¿Qué es el módulo de solicitudes de Python?
- Requests es una biblioteca HTTP con licencia Apache2, que permite enviar solicitudes HTTP/1.1 utilizando Python.
- Para jugar con la web, es imprescindible Python Requests. Ya sea accediendo a las API, descargando páginas enteras de Facebook y muchas cosas más interesantes, habrá que realizar una solicitud a la URL.
- Las solicitudes desempeñan un papel importante en el tratamiento de API REST , y Raspado web .
- Consulte un ejemplo de secuencia de comandos de Python utilizando solicitudes y raspado web: Implementación de Web Scraping en Python con BeautifulSoup
Instalar solicitudes
La instalación de solicitudes depende del tipo de sistema operativo que utilice eis, el comando básico en cualquier lugar sería abrir una terminal de comandos y ejecutar,
pip install requests>
El método básico para la instalación de solicitudes en cualquier sistema operativo es tomar los archivos base e instalar las solicitudes manualmente y Solicitudes se desarrolla activamente en GitHub, donde el código siempre está disponible. Para código – visitar 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 requestspip install .>
Para más pago – Cómo instalar solicitudes en Python: para Windows, Linux, Mac
Hacer una solicitud
El módulo de solicitudes de Python tiene varios métodos integrados para realizar solicitudes Http a un URI específico mediante solicitudes 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 realizar una solicitud GET a un punto final. El método GET se utiliza para recuperar información del servidor determinado utilizando un URI determinado. 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 carácter '?'. Por ejemplo:
https://www.google.com/search?q=hello>
Cómo realizar una solicitud GET a través de solicitudes de Python
El módulo de solicitudes de Python proporciona un método incorporado llamado conseguir() para realizar una solicitud GET a un URI específico.
Sintaxis
requests.get(url, params={key: value}, args)>
Ejemplo :
Intentemos realizar una solicitud a las API de github con fines de ejemplo.
Python3
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 ejecute la terminal,
python request.py>
Producción -
Para obtener más información, visite: Método GET: solicitudes de Python
Métodos de solicitud HTTP
Método | Descripción |
---|---|
CONSEGUIR | El método GET se utiliza para recuperar información del servidor determinado utilizando un URI determinado. |
CORREO | El método de solicitud POST solicita que un servidor web acepte los datos incluidos en el cuerpo del mensaje de solicitud, 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. |
BORRAR | 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 necesita 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 Response en términos de Python es devuelto por request.method(), siendo el método: get, post, put, etc. Response es un objeto poderoso con muchas funciones y atributos que ayudan a normalizar datos o crear porciones ideales de código. Por ejemplo, respuesta.status_code devuelve el código de estado de los encabezados y se puede verificar si la solicitud se procesó exitosamente o no. El objeto de respuesta se puede utilizar para implicar muchas características, métodos y funcionalidades.
Ejemplo :
Python3
# 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)> |
Ups en java
>
>
Guarde este archivo como request.py y ejecútelo usando el siguiente comando
Python request.py>
El código de estado 200 indica que la solicitud se realizó correctamente.
Métodos de respuesta
Método | Descripción |
---|---|
encabezados.de.respuesta | Response.headers devuelve un diccionario de encabezados de respuesta. |
codificación.respuesta | Response.encoding devuelve la codificación utilizada para decodificar Response.content. |
respuesta.transcurrida | respuesta.elapsed devuelve un objeto timedelta con el tiempo transcurrido desde que se envía la solicitud hasta la llegada de la respuesta. |
respuesta.cerrar() | Response.close() cierra la conexión con el servidor. |
respuesta.contenido | respuesta.content devuelve el contenido de la respuesta, en bytes. |
cookies.de.respuesta | Response.cookies devuelve un objeto CookieJar con las cookies enviadas desde el servidor. |
historial.de.respuestas | Response.history devuelve una lista de objetos de respuesta que contienen el historial de solicitudes (URL). |
respuesta.is_permanent_redirect | Response.is_permanent_redirect devuelve True si la respuesta es la URL redireccionada permanente; en caso contrario, False. |
respuesta.is_redirect | Response.is_redirect devuelve Verdadero si la respuesta fue redirigida; en caso contrario, Falso. |
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 | respuesta.url devuelve la URL de la respuesta. |
respuesta.texto | respuesta.text devuelve el contenido de la respuesta, en Unicode. |
respuesta.status_code | Response.status_code devuelve un número que indica el estado (200 está bien, 404 es No encontrado). |
respuesta.solicitud | respuesta.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; en caso contrario, False. |
enlaces.respuesta | Response.links devuelve los enlaces del encabezado. |
Autenticación mediante solicitudes 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, se requeriría principalmente autenticación. 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 -
Python3
# 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)> |
la mejor sonrisa del mundo
>
>
Reemplace usuario y pase con su nombre de usuario y contraseña. Autenticará la solicitud y devolverá una respuesta 200 o devolverá el error 403.
Para más visita – Autenticación mediante solicitudes de Python
Verificación del certificado SSL
Solicitudes verifica los certificados SSL para solicitudes HTTPS, como 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 forma predeterminada, la verificación SSL está habilitada y las solicitudes generarán un SSLError si no pueden verificar el certificado.
Deshabilitar la verificación del certificado SSL
Intentemos acceder a un sitio web con un certificado SSL no válido, utilizando solicitudes de Python
Python3
# import requests module> import> requests> # Making a get request> response> => requests.get(> ' https://expired.badssl.com/ '> )> # print request object> print> (response)> |
>
>
Producción :-
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 únicamente mediante solicitudes de Python.
Python3
numeroso único
# 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 más visita- Verificación de certificado SSL: solicitudes de Python
Objetos de sesión
El objeto de sesión permite conservar ciertos parámetros en todas las solicitudes. También conserva las cookies en todas las solicitudes realizadas desde la instancia de sesión y utilizará la agrupación de conexiones de urllib3. Por lo tanto, si se realizan varias solicitudes 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 solicitudes.
Usando objetos de sesión
Ilustremos el uso de objetos de sesión configurando una cookie en una URL y luego realizando una solicitud nuevamente para verificar si la cookie está configurada.
Python3
java obteniendo la fecha actual
# 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)> |
>
>
Producción:
Para obtener más información, visite: Objetos de sesión: solicitudes de Python
Conclusión
La biblioteca de solicitudes de Python es una poderosa herramienta para realizar solicitudes HTTP e interactuar con las API web. En este tutorial, cubrimos los conceptos básicos del envío de solicitudes GET y POST, el manejo de parámetros y encabezados y la gestión de datos de respuesta. La simplicidad y el diseño intuitivo de la biblioteca la hacen accesible tanto para principiantes como para desarrolladores experimentados.