Glosario

Web scraping

El web scraping es extraer datos de una página web en lugar de de una API. Existe porque los datos que quieres suelen estar visibles para cualquier visitante y ausentes de cualquier endpoint oficial.

La técnica importa más que la etiqueta. Cuatro enfoques, en orden descendente de fiabilidad:

1. Datos estructurados incrustados

Muchas páginas envían sus propios datos como JSON dentro del HTML — application/ld+json, un bloque de hidratación, una caché de Apollo. Es el mejor objetivo disponible: son los datos a partir de los cuales la propia página se renderiza, tienen campos con nombre, y cambian mucho menos a menudo que el marcado.

2. La propia API JSON de la página

Algunos sitios piden su contenido a un endpoint JSON interno que el navegador puede ver. Leerlo directamente es más limpio que parsear HTML, aunque es la superficie que más probablemente exija iniciar sesión.

3. Parseo del DOM

Seleccionar elementos por estructura o por clase. Es viable, pero los nombres de clase cambian sin avisar y un rediseño lo rompe todo de golpe.

4. Expresión regular sobre el HTML en bruto

La peor opción, y falla de una forma concreta: coincide con lo primero que parece correcto. En una plataforma que medimos, la cadena follower_count aparece 42 veces en una página de perfil, y la mayoría de esas veces son contadores de tableros, no del perfil. Una expresión regular toma el que viniera primero y devuelve un número verosímil del objeto equivocado — un fallo silencioso.

Qué hace que el scraping no sea fiable

Obstáculo Qué hace
Muros de inicio de sesión Pone el dato detrás de condiciones que tendrías que aceptar
Huella del cliente Devuelve una página sin el dato a los clientes que no son navegadores
Valores de visualización redondeados Muestra 83K donde el JSON incrustado guarda 83754
200 sin datos Sirve una página de error con estado de éxito

Esto último es la razón de que cada parseo necesite un ancla: un campo que tiene que estar presente para que el documento sea lo que crees que es. Sin una, extraerás datos de una página de "no encontrado" y no te darás cuenta nunca.

El ancho de banda es el coste que nadie pone en precio

Leer un perfil en un protocolo pequeño está por debajo de un kilobyte. La misma lectura en una plataforma comercial grande puede ser de 270 KB decodificados. Esa diferencia es el coste real del scraping a volumen, y lo calculamos plataforma por plataforma.

La legalidad es una pregunta aparte de la técnica — mira datos personales para la parte que sobrevive incluso cuando se gana el argumento de las condiciones de servicio.

Toda API social responde qué es tendencia ahora y después lo tira. HonestHook guarda el archivo por hora, así puedes preguntar qué ganó tracción.

Consigue una clave de API gratis: 1000 créditos al mes, sin tarjeta →

← Glosario · Documentación · Precios