Peticiones HTTP GET con Python y la librería Requests
Clase 3 de 15 • Curso de Web Scraping con Python
Resumen
¿Alguna vez quisiste obtener información automáticamente desde un sitio web utilizando Python? Con el ejemplo práctico del ecommerce Books to Scrape, aprenderás cómo realizar peticiones HTTP a cualquier página web con solo un par de líneas de código. Utilizando la librería Python Requests, podrás replicar fácilmente lo que haces en el navegador de manera programática.
¿Qué librerías necesitas para comenzar?
Para llevar a cabo este proyecto, es importante preparar las siguientes dependencias previamente:
- Request: responsable de realizar las peticiones HTTP.
- BeautifulSoup: aunque se menciona en el proyecto, aún no se aplica en esta etapa.
- CSV: útil para guardar datos en archivos fácilmente.
Estas herramientas te permitirán interactuar eficientemente con páginas web desde tu código Python.
¿Qué son las peticiones HTTP y cuál usamos en este proyecto?
Al interactuar con sitios web, realizamos distintos tipos de peticiones HTTP. Las más comunes son:
- GET: para acceder y obtener información del sitio web.
- POST: para enviar información específica al servidor.
- PUT y DELETE: utilizadas para actualizar o eliminar recursos existentes.
En nuestro caso particular, empleamos el método GET, que nos permite acceder al sitio de forma sencilla, emulando el comportamiento del navegador web.
¿Cómo hacer una petición GET con Python?
Para ejemplificar correctamente, vamos a acceder al sitio Books to Scrape. Sigue estos pasos para efectuar la petición desde tu notebook:
- Define la URL del sitio web objetivo:
URL = "http://bookstoscrape.com"
- Utiliza la librería Request para realizar la petición HTTP tipo GET:
import requests
response = requests.get(URL)
Al ejecutar esto, obtienes un objeto llamado response, el cual contiene información valiosa sobre esta petición.
- Verifica el resultado consultando el status code:
print(response.status_code)
Un resultado de 200 significa que la solicitud fue exitosa.
¿Qué información te devuelve una solicitud GET?
Además del código de estado, puedes acceder al contenido HTML mismo del sitio web utilizando:
print(response.text)
Te devolverá directamente el HTML completo del sitio, tal como aparece en las herramientas del desarrollador del navegador web. Si prefieres verificar solo partes específicas del HTML, puedes limitar el resultado:
if response.status_code == 200:
print("Status code exitoso.")
print(response.text[:15])
else:
print("Response status code:", response.status_code)
Esto te permite identificar rápidamente si tu solicitud fue acertada y ver brevemente parte del contenido recibido.
¿Qué sucede cuando una URL no existe?
Probando con una URL inexistente obtienes un status code 404, indicativo de que el recurso no se encuentra en el servidor:
URL_ficcion = "http://bookstoscrape.com/libro_ficcion"
response = requests.get(URL_ficcion)
print(response.status_code)
Efectivamente, verás que al intentar acceder al recurso, recibirás el esperado código 404.
Estos pasos sencillos te permiten identificar rápidamente si la URL solicitada existe y obtener el contenido HTML, que más adelante limpiarás para extraer elementos específicos. ¡Sigue practicando y comenta cualquier duda o sugerencia!