1
Obtener la página
Enviar una solicitud HTTP y recibir el HTML.
2
Renderizar la página
Ejecutar el JavaScript de la página en un navegador real.
3
Localizar los datos
Señalar elementos mediante selectores XPath o CSS.
4
Extraer y refinar
Obtener valores y limpiarlos con expresiones regulares.
5
Navegar por el sitio
Recorrer la paginación y superar las pantallas de inicio de sesión.
6
Almacenar el resultado
CSV, JSON, una base de datos o una API posterior.
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 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.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, 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 eliminan, dividen y reformatean el texto sin procesar para convertirlo en los campos estructurados que quieres almacenar.