❗ Aviso legal : Esta es la segunda parte de nuestra serie de seis artículos sobre el Web Scraping avanzado. ¿Quieres empezar desde el principio? ¡Ponte al día leyendo la primera parte !
Si te gusta el web scraping, probablemente ya estés familiarizado con la mayoría de los desafíos habituales. Pero, como la Web cambia a una velocidad increíble (especialmente gracias al auge de la IA), hay muchas variables nuevas en el juego del web scraping. Para ascender y convertirte en un experto en web scraping, ¡debes dominarlas todas! 🔍
En esta guía, descubrirás técnicas avanzadas de web scraping y descifrarás el código sobre cómo scrapear los sitios modernos de hoy, ¡incluso con SPA, PWA e IA en la mezcla! 💪
En el pasado, los sitios web eran solo un conjunto de páginas estáticas administradas por un servidor web. Si avanzamos rápidamente hasta ahora, la Web se parece más a una metrópolis bulliciosa. 🌇
Hemos pasado de la renderización del lado del servidor a la del lado del cliente. ¿Por qué? Porque nuestros dispositivos móviles son más potentes que nunca, por lo que dejar que se encarguen de parte de la carga tiene sentido. 📲
Seguro que ya sabes todo eso, pero para llegar a donde estamos hoy, tenemos que saber dónde empezamos. Hoy, Internet es una mezcla de sitios estáticos, sitios dinámicos renderizados por servidores, SPA, PWA, sitios impulsados por IA y más. 🕸️
Y no se preocupen: SPA, PWA e IA no son acrónimos secretos de agencias gubernamentales. Vamos a desglosar esta sopa de letras. 🥣
SPA ( aplicación de una sola página ) no significa que sea literalmente una página, pero se encarga de la navegación sin tener que recargar todo cada vez. Piénsalo como Netflix : haz clic y mira cómo cambia el contenido al instante sin tener que recargar la página. 🍿
Es suave, rápido y te permite mantenerte en el flujo.
Las PWA son como aplicaciones web con esteroides. 💊
Técnicamente hablando, una PWA ( aplicación web progresiva ) utiliza capacidades web de vanguardia para brindarte esa sensación de aplicación nativa directamente desde tu navegador.
¿Funcionalidad sin conexión? ✅
¿Notificaciones push? ✅
¿Carga casi instantánea mediante almacenamiento en caché? ✅
¡En la mayoría de los casos, también puedes instalar PWA directamente en tu dispositivo!
Los sitios web impulsados por IA aportan una pizca de magia de aprendizaje automático. Desde diseños generados dinámicamente y chatbots hasta recomendaciones personalizadas, estos sitios te hacen sentir como si el sitio te conociera . 🤖 ✨
No es solo una navegación, es una experiencia interactiva que se adapta a ti.
¿Estas categorías? ¡No son excluyentes entre sí!
Puedes superponerlos como si fueran un parfait. 🍨 Una PWA también puede ser una SPA, y ambas pueden aprovechar la IA para hacer las cosas más inteligentes y rápidas. Así que sí, ¡puede volverse un poco salvaje!
En resumen, el auge de las SPA, las PWA y los sitios web con tecnología de IA ha hecho que la web sea mucho más compleja. Y sí, eso significa que el web scraping es más desafiante que nunca, con un montón de nuevos factores a tener en cuenta. 😣
¿Y qué pasa con la Web 3.0 ? Bueno, es un poco pronto para decir el impacto que tendrá en el web scraping, pero algunos expertos ya están especulando...
Para empezar a sortear los obstáculos más comunes (y molestos) de la actualidad en el scraping de sitios modernos, mira este video de nuestro amigo Forrest Knight . El capítulo 3 cubre exactamente lo que estás buscando. 👇
¡Veamos ahora lo que hay que tener en cuenta al realizar web scraping avanzado en sitios modernos!
⚠️ Advertencia: No te desanimes si los primeros consejos te suenan familiares. ¡Continúa, porque encontrarás muchos conocimientos nuevos a medida que profundizamos! 🧠
En la actualidad, la mayoría de los sitios se representan completamente en el lado del cliente a través de JavaScript (eso se conoce como representación del lado del cliente ) o tienen secciones dinámicas que cargan datos o cambian el DOM de la página a medida que interactúa con ella.
Si ha utilizado un navegador en la última década, sabe de qué estamos hablando. Esta recuperación dinámica de datos no es magia: ¡funciona con tecnología AJAX! (Y no, no es el club de fútbol Ajax 🔴⚪; aquí hay otro tipo de magia 😉)
Probablemente ya sepas qué es AJAX, pero si no, la documentación de MDN es un buen punto de partida . Ahora bien, ¿AJAX es importante para el web scraping?
Con herramientas de automatización del navegador como Playwright, Selenium o Puppeteer , puedes ordenar a tu script que cargue una página web en un navegador, incluidas las solicitudes AJAX. ¡Solo tienes que elegir una de las mejores herramientas de navegador sin interfaz gráfica y listo!
Para obtener más orientación, lea nuestro tutorial completo sobre cómo extraer datos de sitios dinámicos en Python .
🚨 Pero espera... ¡Hay un consejo de profesional! 🚨
La mayoría de las páginas basadas en AJAX obtienen datos dinámicos a través de llamadas API. Puedes capturar estas solicitudes abriendo la pestaña Red en las herramientas de desarrollo de tu navegador mientras cargas una página:
Verás:
Una o más API REST para diferentes puntos finales.
Una o más llamadas a la API de GraphQL a un único punto final, que puedes consultar mediante GraphQL .
En ambos casos, esto abre la puerta al scraping al apuntar directamente a esas llamadas API. ¡Solo intercepta y extrae esos datos, así de fácil! 🎉
Vea el video a continuación para obtener una guía rápida:
Las páginas web son más interactivas que nunca y los diseñadores experimentan constantemente con nuevas formas de mantenernos interesados. Por otro lado, algunas interacciones, como el desplazamiento infinito , se han convertido en algo habitual. (¿Alguna vez te has encontrado navegando sin parar por Netflix? ¡Asegúrate de ver la serie correcta !)
Entonces, ¿cómo abordamos todas esas interacciones complicadas en el web scraping? Redoble de tambores... 🥁
¡Con herramientas de automatización del navegador! (¡Sí, otra vez! 🎉)
Los más modernos, como Playwright , tienen métodos integrados para gestionar interacciones comunes. ¿Y qué ocurre cuando surge algo único que no se aborda? Normalmente, puedes agregar un código JavaScript personalizado para solucionar el problema.
En particular:
Playwright ofrece el método evaluation() para ejecutar JS personalizado directamente en la página.
Selenium proporcionaexecute_script() , que le permite ejecutar JavaScript en el navegador.
Sabemos que probablemente ya conozcas estos conceptos básicos, por lo que no es necesario profundizar en ellos. Pero si quieres saber todos los detalles, consulta estas guías completas:
¡Aquí es donde la cosa se pone picante! 🌶️
Las PWA están diseñadas para funcionar sin conexión y dependen en gran medida del almacenamiento en caché . Si bien eso es excelente para los usuarios finales, genera un dolor de cabeza para el raspado web porque desea recuperar datos nuevos.
Entonces, ¿cómo se maneja el almacenamiento en caché durante el scraping, especialmente cuando se trata de una PWA? Bueno, la mayoría de las veces, se utilizará una herramienta de automatización del navegador. Después de todo, las PWA suelen procesarse del lado del cliente o dependen de la recuperación dinámica de datos.
¿La buena noticia? Las herramientas de automatización del navegador inician nuevas sesiones del navegador cada vez que las ejecutas. Y en el caso de Puppeteer y Playwright, incluso se inician en modo incógnito de forma predeterminada. Pero aquí está el truco: ¡las sesiones de incógnito/nuevas no están libres de caché o cookies ! 🤯
Cuanto más interactúes con un sitio en tu script de extracción de datos, más probabilidades habrá de que el navegador comience a almacenar en caché las solicitudes, incluso en modo incógnito. Para solucionar el problema, puedes reiniciar el navegador sin interfaz gráfica periódicamente.
O bien, con Puppeteer, puedes desactivar el almacenamiento en caché por completo con un simple comando :
await page.setCacheEnabled(enabled)
Pero, ¿qué pasa si el servidor detrás de la PWA almacena datos en caché? Bueno, eso es otra historia... 👹
Lamentablemente, no hay mucho que puedas hacer con respecto al almacenamiento en caché del lado del servidor. Al mismo tiempo, algunos servidores brindan respuestas en caché basadas en los encabezados de las solicitudes entrantes. Por lo tanto, puedes intentar cambiar algunos encabezados de solicitud, como el User-Agent . 🔄
¡Descubre el mejor User-Agent para web scraping !
¿Alguna vez te preguntaste por qué los sitios web parecen mostrarte contenido que te interesa demasiado ? No es magia, es el aprendizaje automático en acción. 💡
En la actualidad, cada vez más páginas web ofrecen contenido personalizado adaptado a sus preferencias. En función de sus búsquedas, interacciones en el sitio, compras, visitas y otros comportamientos en línea, los algoritmos de aprendizaje automático comprenden lo que le gusta y las páginas web ofrecen contenido en consecuencia .
¿Es útil? ¡Por supuesto! ¡Un gran ahorro de tiempo! ⏱️
¿Es ético? Bueno, aceptaste esos términos del servicio, así que... digamos que sí. 🤷
Pero este es el desafío del web scraping: antes, solo te preocupabas de que los sitios cambiaran su estructura HTML ocasionalmente. Ahora, las páginas web cambian continuamente, lo que potencialmente ofrece una experiencia diferente cada vez que las visitas.
Entonces, ¿cómo se maneja esto? Para obtener resultados consistentes, puede iniciar sus herramientas de automatización del navegador con sesiones almacenadas previamente, que ayudan a garantizar que el contenido siga siendo predecible. Herramientas como Playwright también proporcionan un objeto BrowserContext para ese propósito:
const browserContext = await browser.newContext({ // load the context storage state from a JSON file storageState: "session.json" }); const page = await context.newPage();
Para evitar el contenido personalizado, también debes intentar estandarizar parámetros como el idioma y la ubicación de IP, ya que estos también pueden influir en el contenido que se muestra. 🗺️
Y un último consejo: inspecciona siempre los sitios en modo incógnito antes de realizar un scraping. De esa manera, tendrás una sesión de "pizarra en blanco", libre de datos personalizados. Esto te ayudará a comprender mejor el contenido que normalmente está disponible en el sitio. 🥷
Ahora, el tema del momento: ¡IA ! 🔥
La IA está reescribiendo el manual sobre cómo creamos sitios web. Lo que antes llevaba meses, ¡ahora sucede en segundos o minutos! ⏱️
Para obtener una descripción general rápida de cómo la tecnología de creación web basada en IA está transformando el juego, vea el siguiente video:
¿El resultado? Los sitios están cambiando el diseño, la estructura y el formato más rápido que nunca. Incluso el contenido está recibiendo el tratamiento de la IA, con editores que producen cantidades masivas de texto, imágenes y videos en un instante. ⚡
Y esto es sólo el comienzo…
Imagine un futuro en el que los sitios puedan generar páginas de forma dinámica en función de lo que haga clic o busque. Es como si estuvieran cambiando de forma en tiempo real y se adaptaran a cada usuario.
Toda esa aleatoriedad es una pesadilla para los scripts de raspado web tradicionales. 😱
Sin embargo, aquí está la otra cara de la moneda. Así como la IA acelera las actualizaciones de los sitios web, puedes usar el web scraping impulsado por IA para adaptar tus scripts sobre la marcha. ¿Quieres profundizar más? Lee una guía sobre IA para el web scraping .
Otra posible solución, sobre todo para evitar errores, es crear procesos independientes que monitoreen las páginas en busca de cambios y te avisen antes de que tu script falle. Por ejemplo, a través de un mensaje de Telegram. 📩
Vea cómo crear un bot de notificación de cambios de página en Telegram .
Casi todas las soluciones que hemos analizado hasta ahora suponen que los sitios modernos son muy interactivos. Eso significa que, si desea extraer información de ellos, debe utilizar una herramienta de automatización del navegador. Pero este enfoque tiene un punto débil: ¡el navegador en sí!
¡Los navegadores no están diseñados para extraer información! 😲
Por supuesto, puedes modificarlos con extensiones (como con Puppeteer Extra ) o implementar todos los ajustes mencionados anteriormente. Pero con la detección de bots impulsada por IA de la actualidad, los navegadores tradicionales son cada vez más fáciles de detectar, especialmente cuando los sitios adoptan tecnología avanzada anti-scraping como el análisis del comportamiento del usuario .
Entonces, ¿cuál es la solución? Un potente navegador de extracción de datos que:
Se ejecuta en modo de navegación como un navegador normal para integrarse con los usuarios reales.
Se escala sin esfuerzo en la nube, lo que le permite ahorrar tiempo y costos de infraestructura.
Integra IP rotativas de una de las redes proxy más grandes y confiables.
Resuelve automáticamente CAPTCHAs, administra las huellas digitales del navegador y personaliza las cookies y los encabezados, todo mientras maneja los reintentos por usted.
Funciona perfectamente con las mejores herramientas de automatización como Playwright, Selenium y Puppeteer.
No se trata de una simple idea futurista. Está aquí y es exactamente lo que ofrece el Scraping Browser de Bright Data . ¿Quieres saber más? Mira este vídeo:
¡Ahora ya sabes lo que exige el web scraping moderno, especialmente cuando se trata de competir con SPA y PWA impulsadas por IA!
Seguramente hayas aprendido algunos consejos profesionales aquí, pero recuerda que esta es solo la segunda parte de nuestra aventura de seis partes sobre el web scraping avanzado. Así que abróchate el cinturón de seguridad porque estamos a punto de sumergirnos en tecnología aún más avanzada, soluciones inteligentes y consejos de expertos.
¿Siguiente parada? ¡Secretos de optimización para scrapers más rápidos e inteligentes! 🚀