> ## Documentation Index
> Fetch the complete documentation index at: https://www.octoparse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Anatomía de un scraper

> Todo scraper sigue el mismo proceso: obtener, renderizar, localizar, extraer, navegar y almacenar. Descubre sus etapas y cómo se relacionan.

Un scraper no es una sola cosa, sino un proceso. Tanto si lo escribes en Python como si controlas un navegador sin interfaz gráfica o lo creas visualmente con una herramienta sin código, las mismas etapas se suceden en el mismo orden. Conocerlas facilita mucho detectar dónde falla o se ralentiza un scraper y qué técnica resuelve cada problema.

<Steps>
  <Step title="Obtener la página">
    Enviar una solicitud HTTP y recibir el HTML.
  </Step>

  <Step title="Renderizar la página">
    Ejecutar el JavaScript de la página en un navegador real.
  </Step>

  <Step title="Localizar los datos">
    Señalar elementos mediante selectores XPath o CSS.
  </Step>

  <Step title="Extraer y refinar">
    Obtener valores y limpiarlos con expresiones regulares.
  </Step>

  <Step title="Navegar por el sitio">
    Recorrer la paginación y superar las pantallas de inicio de sesión.
  </Step>

  <Step title="Almacenar el resultado">
    CSV, JSON, una base de datos o una API posterior.
  </Step>
</Steps>

Las cinco primeras etapas se ejecutan en orden en cada página; **navegar** vuelve a **obtener** la página siguiente y todo el ciclo se repite a escala: en la nube, con Proxies rotativos y superando CAPTCHA.

## Obtener la página

Todo empieza con una solicitud. El scraper envía una solicitud HTTP a una URL y recibe una respuesta, normalmente HTML y, a veces, JSON. En páginas sencillas renderizadas en el servidor, este único paso proporciona todo lo necesario. El problema es que la respuesta solo contiene la carga *inicial* enviada por el servidor; en muchos sitios modernos, apenas es un contenedor vacío.

## Renderizar la página

Cuando un sitio genera contenido con JavaScript, los datos buscados no están en el HTML inicial: solo aparecen después de ejecutar los scripts de la página. El renderizado ejecuta esos scripts en un navegador real para que aparezca todo el contenido. El [entorno de ejecución del navegador](/docs/es/academy/browser-runtime-landscape) determina la fidelidad de carga y su coste en memoria y velocidad, y es la base de la [extracción de páginas renderizadas con JavaScript](/docs/es/academy/scrape-javascript-pages).

## Localizar los datos

Una vez cargada la página, el scraper debe señalar los elementos concretos que necesitas: un precio, un título o una fila de una tabla. Para ello se usan [selectores XPath o CSS](/docs/es/academy/xpath-css-selectors), que describen *dónde* se encuentra un elemento en la estructura de la página. Unos buenos selectores marcan la diferencia entre un scraper que resiste pequeños cambios de diseño y otro que falla con cada actualización del sitio.

## Extraer y refinar

Localizar un elemento permite acceder a su contenido sin procesar; la extracción obtiene el valor y el refinamiento lo limpia. Un precio extraído podría llegar como `"$1,299.00 USD"` cuando solo necesitas la cifra. Las [expresiones regulares y reglas de posprocesamiento](/docs/es/academy/refining-data-with-regex) eliminan, dividen y reformatean el texto sin procesar para convertirlo en los campos estructurados que quieres almacenar.

## Navegar por el sitio

La mayoría de los conjuntos de datos abarcan más de una página. El scraper debe recorrer la [paginación](/docs/es/academy/handle-pagination), ya sean enlaces a la página siguiente, botones «cargar más» o desplazamiento infinito, para alcanzar todos los registros. Parte del contenido también está tras [pantallas de inicio de sesión](/docs/es/academy/scraping-login-walls), ante las que el scraper debe autenticarse antes de ejecutar las etapas anteriores.

## Ejecutar a escala

Un scraper que funciona una vez en tu portátil todavía debe resistir miles de ejecuciones. Ejecutarlo [en la nube](/docs/es/academy/cloud-web-scraping) mantiene las tareas activas sin ocupar tu equipo. Los Proxies rotativos distribuyen las solicitudes entre muchas direcciones IP para evitar límites de frecuencia o bloqueos. Los CAPTCHA y servicios anti-bot son los obstáculos que debe superar esta etapa.

## Almacenar el resultado

Por último, los datos extraídos llegan a un destino útil: un archivo CSV o Excel, una exportación JSON, una base de datos o una API posterior. Esta etapa convierte una ejecución de extracción en un conjunto de datos.

## Cómo encaja Octoparse

Con un scraper programado a mano, conectas cada etapa por tu cuenta: una biblioteca de solicitudes, un controlador de navegador, un motor de selectores, código de limpieza, lógica de paginación, gestión de Proxies y una fase de exportación. Octoparse reúne todo el proceso en un único Flujo de trabajo visual. Señalas y haces clic para configurar selectores; el renderizado, la paginación, la Rotación de IP, la Extracción en la nube y la exportación ya están integrados y solo hay que configurarlos. Las etapas son las mismas; lo que cambia es que describes *qué* recopilar en lugar de programar *cómo* funciona cada etapa.
