AdsPower
AdsPower

Cómo hacer web scraping con Javascript: una guía completa

By AdsPower||1,287 Views

¿Quieres aprender a hacer web scraping con Javascript pero no sabes por dónde empezar? No te preocupes.

En este blog, te proporcionaremos toda la información necesaria para empezar a hacer scraping con Javascript. Además, te guiaremos paso a paso a través del proceso de raspado de un sitio web usando JavaScript con Puppeteer.

Comencemos.

¿Qué es el raspado de JavaScript?

En la era digital actual, JavaScript para el raspado web se ha convertido en una habilidad esencial no solo para desarrolladores y entusiastas de los datos, sino también para los profesionales del marketing.

En esencia, el raspado de JavaScript es el proceso de usar bibliotecas o herramientas basadas en JavaScript para extraer datos valiosos de sitios web. Si bien puedes usar otros lenguajes de programación como Python para raspar un sitio web, el raspado de Javascript es particularmente útil para recopilar información de sitios web que usan mucho JavaScript para mostrar contenido.

Al raspar un sitio web con JavaScript, básicamente estás escribiendo código para automatizar el proceso de recopilación de datos de un navegador web. Es un método potente para la extracción de datos, que permite recopilar grandes cantidades de información en un tiempo relativamente corto.

Ya sea que busque analizar las tendencias del mercado, recopilar información competitiva o recopilar datos para generar clientes potenciales para su negocio, la extracción de datos con JavaScript puede ser una herramienta invaluable. Este método aprovecha las capacidades de JavaScript, un lenguaje profundamente arraigado en el desarrollo web, para navegar, seleccionar y extraer datos de diversas páginas web.

Ahora que entendemos qué es el web scraping con Javascript, veamos cómo puedes usar Javascript para rastrear un sitio.

3 formas comunes de extraer datos de un sitio web con Javascript

Existen varias maneras de usar Javascript para extraer datos de un sitio web. Pero ¿cuál debería usar? Bueno, la respuesta depende de sus necesidades de extracción. En esta sección, explicaremos tres formas comunes que las personas usan para rastrear un sitio web usando Javascript.

Cheerio para sitios web estáticos simples

¿Has visto sitios web HTML cuyo contenido se carga rápidamente en la solicitud inicial? Bueno, eso se debe a que no contienen contenido pesado como videos o animaciones complejas. Al tratar con sitios web tan estáticos, usar Cheerio es una opción ideal.

Al obtener el HTML sin procesar de la página a través de un cliente HTTP, Cheerio le permite recorrer y manipular el DOM fácilmente.

Es ligero y rápido, principalmente porque no necesita cargar todo el entorno del navegador. Como mencionamos, este método es perfecto para sitios web simples y estáticos donde los datos están fácilmente disponibles en el código HTML.

Puppeteer para extraer contenido dinámico

Puppeteer utiliza un navegador sin cabeza y un navegador web sin una interfaz gráfica de usuario (GUI), para interactuar con páginas web. Esto significa Puede emular acciones del usuario, como hacer clic en botones o desplazarse, algo esencial para acceder al contenido que aparece como resultado de estas interacciones.

Puppeteer es potente para extraer datos de aplicaciones web modernas que dependen de AJAX y requieren un entorno de navegador completo para ejecutar código JavaScript y renderizar contenido.

Extraer contenido de un sitio web con jQuery

A veces, puede que no necesites extraer grandes cantidades de datos. Puede que necesites extraer información rápidamente una vez, como extraer ciertas direcciones de correo electrónico. En tales casos, jQuery puede ser una herramienta útil. Aunque es un script del lado del cliente que se ejecuta en el navegador, puedes usar jQuery para seleccionar y extraer datos de páginas web fácilmente.

Este método es especialmente útil para tareas de scraping ad-hoc. Es tan sencillo como abrir la consola, escribir unas líneas de código jQuery y extraer la información necesaria. Sin embargo, este enfoque no es adecuado para tareas de scraping a gran escala o automatizadas.

Cada uno de estos métodos tiene sus propias ventajas y es adecuado para diferentes necesidades de scraping. Ya sea una extracción de datos puntual o una tarea compleja que involucre contenido dinámico, JavaScript ofrece una solución robusta y flexible.

Sin embargo, en esta guía, realizaremos scraping web en Javascript con Puppeteer. Te explicaremos paso a paso cómo hacerlo con Puppeteer.

¿Cómo hacer scraping web con Puppeteer en Javascript?

El raspado web a veces puede parecer abrumador, pero la tarea se vuelve 10 veces más fácil si conoces las herramientas adecuadas. En esta sección, Explora cómo usar Puppeteer, una biblioteca de Node, para extraer datos web. Puppeteer es una herramienta de Javascript perfecta para extraer contenido dinámico.


Paso 1: Crear un nuevo directorio e instalar Puppeteer

Primero lo primero, configuremos nuestro entorno de proyecto. Primero, crea un nuevo directorio de proyecto e inicialízalo.

Luego, instala Puppeteer, que usaremos para el scraping. Abre tu consola y ejecuta los siguientes comandos:

Cómo hacer web scraping con Javascript: una guía completa

  • Para crear un nuevo directorio:mkdir web-scraping-puppeteer

  • Para moverse al directorio: cd web-scraping-puppeteer

  • Inicializando un nuevo proyecto de Node.js: npm init -y

  • Instalando Puppeteer:npm install puppeteer


Paso 2: Escritura del código inicial

Ahora, escribamos el código inicial para iniciar un navegador, navegar a Google Imágenes y buscar "happy do" g". Usaremos Puppeteer para abrir una nueva ventana del navegador, configurar la ventana gráfica e interactuar con los elementos de la página.

Aquí está el código para este paso:

Cómo hacer web scraping con Javascript: una guía completa

Explicación del código:

  • const titiritero = require('titiritero');

    • ¿Recuerdas que en el primer paso instalamos Puppeteer en nuestro sistema? Bueno, esta línea importa la biblioteca de Puppeteer al script. Luego nos permite usar sus funcionalidades para controlar un navegador sin&bsp;cabeza .

  • (async()=>{...})();

    • Esta línea declarará una función asíncrona. Esta función se encargará de las tareas de raspado web. Las funciones asíncronas nos permiten Esperar a que ciertas acciones se complete (como cargas de páginas) antes de pasar al siguiente paso, lo que es crucial en el scraping web.

  • const navegador = espera puppeteer.launch();

    • Esta línea le indica a Puppeteer que inicie una nueva sesión del navegador. La palabra clave await se usa para garantizar que el navegador se inicie por completo antes de que continúe el script.

  • const página = await browser.newPage();

    • Después de iniciar el navegador, este comando abre una nueva página (o pestaña) en el navegador.

  • await page.goto('https://www.google.com/imghp?hl=es');

    • El script navega por la página abierta a la URL especificada, que en este caso es la página de búsqueda de Google Imágenes. La palabra clave "await" garantiza que la navegación se complete antes de continuar.

  • await page.setViewport({ ancho: 1080, alto: 1024 });

    • Esto establece las dimensiones de la ventana gráfica (la sección visible de la página). Es importante para las capturas de pantalla o para las páginas que cambian de diseño según el tamaño de la pantalla.

  • await page.type('textarea[name="q"]', 'perro feliz');

    • Este comando simula escribir el texto "perro feliz" en un campo de entrada de la página, específicamente un texto con el atributo de nombre "q" (que, en Google Imágenes, es el campo de búsqueda).

  • esperar página.click('botón[tipo="enviar"]');

    • Esta línea simula un clic en el botón de envío del formulario, lo que activa la búsqueda.

  • await page.waitForNavigation();

    • Después de hacer clic en el botón Enviar, este comando espera a que se complete la navegación de la página (es decir, espera a que se carguen los resultados de la búsqueda).

  • espera browser.close();

    • Una vez completados todos los pasos anteriores, este comando cierra el navegador.

Paso 3: Obtener la imagen del "perro feliz" de Google Imágenes.

Ahora nuestro objetivo es seleccionar la imagen que queremos extraer e identificar su clase, ID y URL de origen dentro de su div.

Para ello, debe abrir su navegador, buscar "perro feliz" y hacer clic en la imagen que desea extraer. Una vez expandida la imagen, haga clic derecho sobre ella y seleccione la opción "Inspeccionar". />


Cómo hacer web scraping con Javascript: una guía completa

Así es como se vería el código completo:

Cómo hacer web scraping con Javascript: una guía completa

En este código:

  • Primero nos aseguramos de que Puppeteer navegue a Google Imágenes y realice la búsqueda de "perro feliz".

  • Una vez cargados los resultados, seleccionamos todas las imágenes que coinciden con la clase '.sFlh5c.pT0Scc.iPVvYb'.

  • Luego, hacemos clic en la imagen deseada en la lista para activar la vista previa.

  • Esperamos a que se carguen el contenedor de vista previa (#islsp) y la imagen grande que contiene.

  • Finalmente, extraemos el atributo src de la imagen grande, que contiene su URL.

En caso de que se lo pregunte, usamos declaraciones "if" y "else" en este código para garantizar que Devuelve "No se encontraron imágenes con la clase especificada" en caso de que la clase sea incorrecta. De lo contrario, a veces, el código falla.

Ahora has aprendido a extraer datos de un sitio web con Javascript y Puppeteer. Puedes usar el mismo método para extraer varias imágenes de cualquier sitio web.

Sin embargo, algunos sitios web no permiten extraer su contenido. Tienen implementadas técnicas anti-extracción. que le dificulten realizar el trabajo. O peor aún, puede que acabe bloqueado por completo. />

Pero también hay una solución a este problema . Vaya a la siguiente sección para obtener más información sobre cómo puede Explorar sitios web sin ser detectado ni bloqueado.

Usa AdsPower para navegar sin ser detectado

Si quieres añadir una capa de protección al extraer datos con JavaScript, AdsPower es el mejor navegador antidetección que puedes usar.El navegador AdsPower garantiza una experiencia de raspado web fluida al evitar eficazmente los desafíos anti-scraping.

También puedes usarlo para crear varios perfiles de usuario y permanecer anónimo en la web.Regístrate hoy mismo para asegurar tu futuro.

¡Terminando!

Aprender a extraer datos de la web con JavaScript abre un mundo de posibilidades. Ya sea para proyectos personales o para análisis profesionales, herramientas como Puppeteer lo hacen accesible y eficiente.

Utiliza la técnica mencionada en este blog y extrae la información que necesites. Además, no olvides usar AdsPower para un raspado seguro.

La gente también leyó