Haciendo Solicitudes HTTP con Requests en Python

Haciendo Solicitudes HTTP con Requests en Python

Introducción

En la web, las solicitudes HTTP son el mecanismo que permite que los navegadores, las aplicaciones y los scripts se comuniquen con los servidores. Una solicitud HTTP es una petición a un servidor web para que devuelva un recurso, como una página web, un archivo o un servicio.

En Python, la biblioteca Requests proporciona una forma sencilla y fácil de realizar solicitudes HTTP. Requests es una biblioteca de código abierto que está disponible en PyPI.

Instalación

Para instalar Requests, abra una terminal y ejecute el siguiente comando:

pip install requests

Solicitudes GET

Las solicitudes GET son el tipo de solicitud HTTP más común. Se utilizan para recuperar un recurso de un servidor web.

Para realizar una solicitud GET con Requests, use el método get(). El método get() toma una URL como argumento.

Python
import requests

# Realizar una solicitud GET a la página web de Google
response = requests.get("https://www.google.com")

# Imprimir el contenido de la respuesta
print(response.text)

Este código generará el siguiente resultado:

<!DOCTYPE html>
<html>
<head>
<title>Google</title>
...

Solicitudes POST

Las solicitudes POST se utilizan para enviar datos a un servidor web. Los datos se envían en el cuerpo de la solicitud.

Para realizar una solicitud POST con Requests, use el método post(). El método post() toma una URL y un diccionario de datos como argumentos.

Python
import requests

# Realizar una solicitud POST a la API de Google Books
data = {
    "q": "Python"
}

response = requests.post("https://www.googleapis.com/books/v1/volumes", json=data)

# Imprimir el contenido de la respuesta
print(response.json())

Este código generará el siguiente resultado:

{
    "kind": "books#volumes",
    "items": [
        {
            "id": "1234567890",
            "volumeInfo": {
                "title": "Python for Beginners",
                "authors": ["John Doe"],
                "publishedDate": "2023-01-01"
            }
        }
    ]
}

Solicitudes con parámetros

Las solicitudes HTTP pueden incluir parámetros en la URL. Los parámetros se utilizan para especificar información adicional sobre la solicitud.

Para incluir parámetros en una solicitud con Requests, use el método get() o post() con el parámetro params. El parámetro params es un diccionario de pares clave-valor que representa los parámetros de la solicitud.

Python
import requests

# Realizar una solicitud GET a la página web de Google con un parámetro
response = requests.get("https://www.google.com/search?q=Python")

# Imprimir el contenido de la respuesta
print(response.text)

Este código generará el siguiente resultado:

...
<h1>Resultados de la búsqueda</h1>
<ul>
...
<li>
    <a href="https://www.python.org/">Python (lenguaje de programación)</a>
</li>
...
</ul>
...

Solicitudes con encabezados

Las solicitudes HTTP pueden incluir encabezados. Los encabezados proporcionan información adicional sobre la solicitud o la respuesta.

Para incluir encabezados en una solicitud con Requests, use el método get() o post() con el parámetro headers. El parámetro headers es un diccionario de pares clave-valor que representa los encabezados de la solicitud.

Python
import requests

# Realizar una solicitud GET a la página web de Google con un encabezado
headers = {
    "User-Agent": "My Python App"
}

response = requests.get("https://www.google.com", headers=headers)

# Imprimir el contenido de la respuesta
print(response.text)

Este código generará el mismo resultado que el código anterior, pero el encabezado User-Agent se establecerá en «My Python App».

Conclusión

Requests es una biblioteca potente y versátil que permite realizar solicitudes HTTP de manera sencilla y fácil. Con Requests, puede realizar solicitudes GET, POST, PUT y DELETE, así como establecer parámetros y encabezados.

Para obtener más información sobre Requests, visite la documentación oficial