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.
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.
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.
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.
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