Formatos y fuentes de datos 8 min de lectura

Scraping, parseo y crawling: ¿en qué se diferencian?

Scraping, parseo y crawling: en qué se diferencian estos procesos, cómo se relacionan entre sí y por qué se confunden tan a menudo.

EW
Equipo Web-Scraping.es
Recopilación de datos para las necesidades del negocio
Publicado: 5 mayo 2025

Estas tres palabras aparecen constantemente juntas y a menudo se usan como sinónimos. En realidad son tres procesos distintos, que resuelven tareas diferentes y que la mayoría de las veces trabajan juntos — como eslabones de una misma cadena. Veamos cada uno por separado, cómo se relacionan entre sí y cuáles son los problemas típicos de cada cual.

En versión ultracorta:

  • Crawling (rastreo)encuentra las páginas (recorre los enlaces).
  • Scrapingextrae de la página los datos que interesan.
  • Parseodescompone el texto o el marcado en bruto en una estructura útil.

Parseo (parsing)

El parseo es el análisis de datos según reglas definidas y su transformación de un formato «en bruto» a uno estructurado.

La palabra viene de las ciencias de la computación, donde un parser es el componente que lee una secuencia de caracteres (por ejemplo, el código fuente de un programa, un JSON, un XML o un HTML) y construye a partir de ella una estructura comprensible para la máquina: un árbol, un objeto, un conjunto de campos.

Un ejemplo sencillo. Tenemos una cadena de HTML:

html
<div class="price">1.299 €</div>

El parser la convierte en un árbol de elementos (el DOM), por el que se puede «navegar» y preguntar: «deme el contenido del elemento con la clase price». A la salida ya no hay una ristra de caracteres, sino un valor claro, 1.299 €, del que después se puede extraer el número 1299.

Importante: el parseo, por sí solo, no descarga nada de internet. Trabaja con texto que ya se tiene. Se puede parsear un archivo local, la respuesta de una API o una cadena recibida en un mensaje. El parseo va de estructura, no de origen.


Scraping

El scraping (web scraping) es la extracción de datos concretos de páginas web.

Un scraper hace dos cosas:

  1. Descarga la página (envía una petición HTTP y recibe el HTML).
  2. Extrae de ella los datos necesarios: precios, titulares, contactos, reseñas.

Y es justo en el segundo paso donde el scraper usa el parseo como herramienta: para sacar el precio de una página, primero hay que parsearla. Es decir, el parseo es una parte del scraping, su etapa interna, no una alternativa aparte.

El scraping suele apuntar a datos concretos de páginas concretas. Tareas clásicas: recopilar los precios de la competencia, descargar un catálogo de productos, reunir anuncios clasificados, monitorizar noticias.


Crawling (rastreo)

El crawling (rastreo) es el recorrido sistemático de páginas siguiendo los enlaces.

El rastreador (también llamado araña, bot o spider) parte de una o varias páginas iniciales, encuentra en ellas todos los enlaces, los sigue, descubre enlaces nuevos — y así sucesivamente. Su tarea no es extraer un campo concreto, sino descubrir y recorrer el mayor número posible de páginas.

El ejemplo más conocido de rastreadores son los buscadores. Los robots de Google y Bing recorren internet sin descanso para saber qué páginas existen y poder indexarlas.

En los proyectos reales, crawling y scraping suelen combinarse: el rastreador recorre el catálogo de una tienda online página a página y, en cada ficha de producto encontrada, se lanza el scraper, que extrae el precio, el nombre y las características — y este, a su vez, parsea el HTML por dentro para llegar hasta esos datos.


Cómo encaja todo

Lo más cómodo es imaginarlo como una cadena de montaje:

Pipeline de recopilación de datos: el crawling encuentra páginas recorriendo los enlaces, el scraping descarga el HTML y extrae los datos necesarios, el parseo los descompone en una estructura — un árbol y campos listos
  • El crawling responde a la pregunta «¿qué páginas hay que procesar?»
  • El scraping«¿qué hay que llevarse de esas páginas?»
  • El parseo«¿cómo convertir el marcado en datos?»

Se puede parsear sin scrapear (analizar un archivo que ya se tiene). Se puede scrapear sin un crawling completo (cuando la lista de páginas ya se conoce). Y el crawling casi siempre va de la mano del scraping: sin él, recorrer páginas no tiene sentido.


Sobre la terminología: cómo se usan estos términos en español

Merece la pena detenerse aquí, porque en español conviven los términos ingleses, sus adaptaciones coloquiales y alguna traducción literal — y no todos significan lo mismo.

Scraping. Para el proceso completo de recopilar datos de sitios web de forma automatizada, la comunidad hispanohablante usa el término inglés: web scraping o, simplemente, scraping. Existe la calca «raspado web» — aparece en prensa, en textos académicos y en alguna documentación traducida —, pero en el entorno profesional gana «scraping» con claridad: es lo que se lee en las ofertas de empleo, en los foros técnicos y en la documentación de las herramientas. De ahí sale el verbo coloquial scrapear: «scrapear los precios de la competencia», «scrapear un marketplace».

Parseo. Parsear es otro anglicismo plenamente asentado en la jerga de los desarrolladores hispanohablantes, pero con un significado más estrecho y bastante fiel al original: analizar contenido que ya se tiene descargado. Se parsea un JSON, un XML, un log, un HTML ya recibido: «parsear la respuesta de la API», «el parser se atraganta con ese HTML». Fíjese en el matiz: quien parsea no descarga nada — procesa texto que ya está en su poder.

Crawling / rastreo. Es el único de los tres que cuenta con una traducción española de uso general: rastrear. La consolidó el mundo SEO: la documentación de Google en español habla de «rastreo» e «indexación», del «presupuesto de rastreo» (crawl budget) y de los «rastreadores» (crawlers). En conversación técnica alternan «rastrear» y el calco verbal crawlear, este último más informal.

¿Dónde está entonces la confusión? No tanto en las palabras como en su uso indistinto. En el día a día, «scrapear un sitio» funciona a menudo como etiqueta para todo el proceso — rastreo, descarga y análisis incluidos —, y no falta quien dice «parsear una web» cuando en realidad describe un scraping completo. En una charla informal nadie se pierde; pero al redactar documentación, estimar un proyecto o hablar con un cliente conviene la precisión: scraping = extracción automatizada de datos de páginas web, parseo = análisis del contenido ya descargado, crawling/rastreo = recorrido de páginas siguiendo enlaces. Y si trabaja con documentación en inglés, está de suerte: los tres términos se corresponden casi uno a uno con scraping, parsing y crawling.


Problemas del parseo

El parseo parece sencillo mientras el marcado es limpio. En la práctica estorba lo siguiente.

  • HTML «roto». Los navegadores son muy indulgentes: muestran la página aunque haya etiquetas sin cerrar o mal anidadas. El parser, en cambio, tiene que adivinar la estructura de alguna manera, y el resultado puede ser inesperado.
  • Estructura cambiante. Usted define la regla «tomar el precio del elemento con la clase price», el sitio renombra la clase un mes después — y todo se rompe. Un parseo atado a un marcado concreto es muy frágil.
  • Contenido dinámico. Muchos sitios cargan los datos después de que la página se haya cargado, mediante JavaScript. En el HTML inicial esos datos simplemente no están: no hay nada que parsear hasta que la página se «renderiza» en un navegador de verdad.
  • Codificaciones. Una codificación mal detectada convierte el texto en símbolos ilegibles (el clásico «mojibake»), y los números y las letras se extraen con errores.
  • Ambigüedad. A veces, datos con significados distintos comparten el mismo marcado y, sin reglas adicionales, cuesta distinguirlos.

Problemas del scraping

Aquí, a los problemas del parseo se suman las dificultades derivadas de acceder a un sitio ajeno a través de la red.

  • Protección anti-bots. Los sitios emplean CAPTCHA, limitación de la frecuencia de peticiones (rate limiting), bloqueos por IP y análisis del comportamiento. Un scraper demasiado activo se gana el bloqueo enseguida.
  • Sitios con JavaScript. Si los datos se cargan mediante scripts, una petición normal no basta: hace falta un navegador sin interfaz (headless browser) que ejecute el JS de verdad. Es mucho más lento y pesado.
  • Fragilidad y mantenimiento. El sitio cambia el marcado — y el scraper se rompe. Todo scraper exige un mantenimiento continuo; no es un «lo escribo y me olvido».
  • Trampas (honeypots). A veces se añaden a las páginas enlaces o campos invisibles para una persona. El humano no los ve; el bot los sigue — y se delata.
  • Cuestiones legales y éticas. Las condiciones de uso del sitio (ToS), los derechos de autor, los datos personales, la carga sobre servidores ajenos. Lo técnicamente posible no siempre es admisible desde el punto de vista legal: conviene comprobarlo siempre por separado.
  • robots.txt. El archivo en el que el sitio indica qué pueden y qué no pueden recorrer los bots. Se respeta como mínimo por cortesía (y, a menudo, también por consideraciones legales y éticas).

Problemas del crawling

El crawling tiene dificultades propias — nacen precisamente de que el bot decide por sí mismo qué enlaces seguir y de que la escala puede volverse enorme.

Bucles y «trampas para rastreadores»

Es, probablemente, el problema más característico del crawling.

  • Ciclos de enlaces. La página A enlaza a B, B enlaza a C y C, de nuevo, a A. Si el rastreador no recuerda dónde ha estado ya, dará vueltas en círculo indefinidamente. La solución básica: mantener la lista de direcciones (URL) ya visitadas y no volver a entrar en ellas.
  • «Trampas» infinitas (crawler traps). Peores que los ciclos simples son los casos en los que el sitio genera direcciones nuevas sin fin. Ejemplos clásicos:
  • El calendario. Un widget con el botón «mes siguiente» puede llevar al infinito: el rastreador seguirá pulsando «adelante» hasta el año 2099 y más allá.
  • Filtros y ordenaciones sin fin. Cada combinación de parámetros en la dirección (?sort=price&color=red&page=2…) parece una página nueva, aunque el contenido sea casi el mismo. Y las combinaciones posibles son astronómicas.
  • Identificadores de sesión en la dirección. Si el sitio inserta en la URL un session id único, la misma página parece nueva en cada visita, y la lista de «visitadas» no salva: las direcciones son distintas.
  • Páginas duplicadas. El mismo contenido es accesible en varias direcciones (con barra final y sin ella, con www y sin él, con parámetros distintos). Sin normalización de direcciones, el rastreador gasta recursos en lo mismo una y otra vez.

Todo esto se resuelve con la normalización de las URL (unificar las direcciones), límites de profundidad del recorrido, cupos de páginas por dominio, la poda de las secciones que «se multiplican» de forma sospechosa y la detección de trampas.

Escala y cortesía

  • Volumen. Internet (e incluso un solo sitio grande) es enorme. Hay que decidir qué recorrer primero (priorización) y no intentar descargarlo todo sin criterio.
  • Carga sobre el servidor. Las peticiones demasiado frecuentes pueden «tumbar» un sitio ajeno. Por eso se introducen pausas entre peticiones (crawl delay) y se limita el paralelismo: es lo que se llama rastreo «educado».
  • Frescura de los datos. Las páginas cambian. Hay que decidir con qué frecuencia volver a revisar lo ya recorrido para que los datos no queden obsoletos.
  • Páginas invisibles. Parte del contenido no se alcanza siguiendo enlaces (detrás de formularios, de una autenticación, en la «web profunda»): ahí el rastreador no llega por sí solo.

Resumen breve

Proceso Qué hace Pregunta clave Dolor típico
Crawling (rastreo) Recorre páginas siguiendo enlaces «¿Qué páginas procesar?» Bucles, trampas, escala, carga
Scraping Descarga la página y extrae los datos «¿Qué llevarse de la página?» Protección anti-bots, sitios JS, fragilidad, legalidad
Parseo Descompone el marcado en estructura «¿Cómo convertir el HTML en datos?» HTML «roto», marcado cambiante, codificaciones

Y lo principal que conviene retener sobre la terminología: en la conversación cotidiana, «scrapear» sirve de etiqueta para todo el proceso de recopilación de datos, pero, hablando con precisión, el scraping extrae los datos, el parseo analiza el marcado ya descargado y el crawling (rastreo) descubre las páginas. En una charla informal la diferencia da igual; al redactar documentación o acordar un proyecto, importa — y con las fuentes en inglés juega a su favor, porque allí scraping, parsing y crawling significan exactamente eso.