Saltar a contenido

Web Scraping: Extracción de Datos y Ética Digital

El Web Scraping es el proceso de utilizar bots para extraer contenido y datos de un sitio web. A diferencia de las APIs oficiales, el scraping simula la navegación humana para obtener información que no está disponible de forma estructurada.


1. El Manifiesto del Scraping Ético

Antes de escribir una sola línea de código, debemos entender que los servidores que consultamos tienen dueños y costos de mantenimiento. Un buen desarrollador sigue estas reglas:

  • Revisar el robots.txt: Siempre verifica tu-sitio.com/robots.txt para ver qué áreas el dueño permite rastrear.
  • No saturar el servidor: Añade retrasos (time.sleep) entre peticiones para no provocar una caída del sitio (Ataque DoS).
  • Identificarse: Configura un "User-Agent" honesto que incluya tu contacto si es posible.
  • Respetar la Propiedad Intelectual: No utilices datos extraídos para replicar el negocio de otro o violar derechos de autor.

2. Herramientas Principales

En Python, el ecosistema de scraping es muy maduro: 1. Requests: Para descargar el código HTML de la página. 2. BeautifulSoup: Para "parsear" (analizar) el HTML y extraer etiquetas específicas (títulos, precios, enlaces). 3. Selenium / Playwright: Para interactuar con sitios modernos que cargan contenido dinámicamente con JavaScript.


3. Anatomía de una Extracción

El proceso consiste en identificar las etiquetas HTML donde reside la información. Por ejemplo, si buscamos el precio de un producto, inspeccionamos el código del sitio para encontrar algo como: <span class="precio">$500</span>.


Reto: Simulador de Extracción Segura

Vamos a practicar la lógica de extracción simulando que hemos descargado el HTML de una tienda de libros. Tu tarea es extraer el título del libro de forma limpia.

Instrucciones:

  1. Importa la clase BeautifulSoup desde el módulo bs4.
  2. Supongamos que la variable html_doc ya contiene el código de la página.
  3. Crea un objeto llamado sopa usando BeautifulSoup(html_doc, 'html.parser').
  4. Extrae el texto dentro de la etiqueta h1 y guárdalo en la variable titulo.

# Extracción de datos responsable: