Peticiones HTTP GET en Python para extraer contenido web
Clase 3 de 15 • Curso de Web Scraping con Python
Resumen
Aprender a realizar peticiones HTTP con Python es fundamental para interactuar con páginas web directamente desde nuestro código. Usaremos principalmente la librería Request para obtener información específica de sitios web, tal como obtener contenido HTML y verificar estados de respuesta fácilmente.
¿Qué necesito para empezar a extraer información de páginas web?
Primero, necesitás tener listas algunas dependencias básicas: la librería Request, Beautiful Shop y el módulo CSV. Estas herramientas permitirán realizar peticiones HTTP, obtener el contenido de sitios web y organizar los datos recopilados de manera práctica.
Los pasos generales en este proceso son:
- Definir la URL del sitio al que quieres acceder.
- Usar una petición HTTP tipo GET para solicitar recursos del servidor.
¿Cómo funciona una petición GET con la librería Request?
Una petición GET es la más simple y común, ideal para situaciones donde simplemente necesitás acceder al contenido web sin enviar parámetros adicionales o modificar recursos.
Para hacer esto, usás el método GET así:
import requests
url = "http://book-to-scrape.com"
response = requests.get(url)
Este código realiza una petición hacia el servidor web. La información que devuelve esta petición puede verificarse primero revisando el status code:
- 200 indica éxito, la petición funcionó correctamente.
- 404 significa que el recurso solicitado no existe.
¿Qué información obtengo después de realizar una petición GET?
Luego de reconocer el estado de tu petición HTTP, podés acceder directamente al contenido que devolvió la página en formato HTML, usando la propiedad .text
del response:
print(response.text)
Si el HTML es extenso, puedes mostrar solo una parte específica para evitar saturar el resultado; por ejemplo, mostrando únicamente los primeros caracteres:
print(response.text[0:15])
Este paso inicial puede parecer abrumador al principio, ya que observas todo el contenido HTML del sitio web. Sin embargo, en los próximos pasos aprenderás a identificar y extraer datos puntuales y relevantes como títulos, precios y enlaces gracias a herramientas adicionales como Beautiful Shop.
¿Qué hago si mi petición devuelve otro estado que no sea 200?
Siempre es bueno incorporar validaciones que indiquen claramente si una petición fue exitosa o fallida. Esto lo consigues fácilmente con un condicional:
if response.status_code == 200:
print("status code 200, exitoso")
print(response.text[0:15])
else:
print("response status code", response.status_code)
Si intentás acceder a una URL inexistente, recibirás un status code 404. Por lo tanto, revisá y asegurá la correcta escritura de la URL antes de realizar las peticiones desde código.
Anímate a practicar estos pasos básicos. ¿Te surgieron otras preguntas sobre cómo extraer información web con Python? ¡Comparte tu experiencia en los comentarios!