,

How to WebScrape any Website using Nodejs, Puppeteer, and Proxies

Posted by

En este tutorial, vamos a aprender cómo hacer web scraping de cualquier sitio web utilizando Node.js, Puppeteer y proxies. Web scraping es el proceso de extraer información de un sitio web de manera automatizada y se puede utilizar para varios propósitos, como recopilar datos para un análisis, monitorizar cambios en un sitio web, etc. Puppeteer es una biblioteca de Node.js que nos permite controlar un navegador Chrome o Chromium y realizar tareas automatizadas, como hacer clic en botones, rellenar formularios, navegar por páginas, etc. Los proxies son servidores intermedios que se utilizan para ocultar la dirección IP de nuestro cliente y mantener nuestra actividad de web scraping anónima.

Para empezar, primero necesitamos instalar Node.js en nuestro sistema si aún no lo hemos hecho. Puedes descargar e instalar Node.js desde su sitio web oficial. Una vez que Node.js esté instalado, abrimos una terminal y creamos una nueva carpeta donde crearemos nuestro proyecto de web scraping. Dentro de esa carpeta, inicializamos un nuevo proyecto de Node.js ejecutando el siguiente comando:

npm init -y

Esto creará un archivo package.json en nuestra carpeta que contendrá la configuración de nuestro proyecto. A continuación, instalamos las dependencias necesarias para nuestro proyecto: Puppeteer y un paquete llamado puppeteer-extra que nos permitirá utilizar proxies en nuestro web scraping. Ejecutamos los siguientes comandos en nuestra terminal:

npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth puppeteer-extra-plugin-proxy-agent

Una vez que hayamos instalado las dependencias, creamos un nuevo archivo JavaScript en nuestra carpeta y lo llamamos scrape.js. En este archivo, escribiremos nuestro código de web scraping. Empezamos importando las bibliotecas necesarias y configurando nuestro proxy. Aquí hay un ejemplo de cómo se vería el código inicial:

const puppeteer = require('puppeteer');
const puppeteerExtra = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const ProxyAgent = require('puppeteer-extra-plugin-proxy-agent');

puppeteerExtra.use(StealthPlugin());
puppeteerExtra.use(
  ProxyAgent({
    proxy: 'http://usuario:contraseña@direccion-del-proxy:puerto',
  })
);

En el código anterior, estamos importando las bibliotecas necesarias, configurando el plugin Stealth para evitar la detección de bots por el sitio web que estamos raspando, y configurando nuestro proxy. Asegúrate de reemplazar ‘usuario’, ‘contraseña’, ‘direccion-del-proxy’ y ‘puerto’ con los valores de tu propio proxy.

A continuación, escribimos el código para iniciar una instancia de Puppeteer y navegar a un sitio web en particular. Aquí hay un ejemplo de cómo navegar a la página de inicio de Google y tomar una captura de pantalla:

(async () => {
  const browser = await puppeteerExtra.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto('https://www.google.com');
  await page.screenshot({ path: 'screenshot.png' });

  await browser.close();
})();

En el código anterior, estamos iniciando una instancia de Puppeteer, abriendo una nueva página, navegando a https://www.google.com y tomando una captura de pantalla de la página. Puedes personalizar este código para raspar cualquier sitio web que desees.

¡Y eso es todo! Con este tutorial, has aprendido cómo hacer web scraping de cualquier sitio web utilizando Node.js, Puppeteer y proxies. Recuerda que es importante respetar los términos de servicio del sitio web que estás raspando y consultar su archivo robots.txt para asegurarte de no violar ningún término de servicio. ¡Buena suerte en tu aventura de web scraping!

0 0 votes
Article Rating
17 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@FaztCode
3 months ago

¡Visita DataImpulse aquí! 😊👉 https://bit.ly/4643GY9

@dxabier
3 months ago

No sabía que había calcetines especificos para programadores.

@danielremon527
3 months ago

Esta bueno tu contenido, pero porfavor mejora tu dicción , la pronunciación de lo que dices debe ser clara. Trabaja en eso pero lo demas felicitaciones, muy buen contenido.

@efertutozz
3 months ago

consulta, en mi proyecto utilice puppeteer con nextjs (me guie con tu video anterior de eso), en localhost funciona perfectamente, pero al momento de hacer deploy en vercel me da muchos errores (uno de eso es que no esta instalado chrome), por lo que investigue hay que utilizar aws-lambda o algo por el estilo pero mas alla no me manejo… no se si sabras algo al respecto o alguien que pueda ayudarme, gracias de antemano

@DanielVallenilla-bu5ze
3 months ago

Que excelente video

Anonymous
3 months ago

Uhh excelente Fazt. 👍👍🌍🌍✅✅

@_holamellamojesus
3 months ago

Que tema de vscode usas? :v

@fabianromero1660
3 months ago

Excelente, justo me salio un proyecto para esto, gracias por tu trabajo Fazt

@enriquecasas4001
3 months ago

Excelente herramienta, muy bien explicado.

@claudio-guevara479
3 months ago

Hola fazt 👋 que tema de vsc estás ocupando?

@lusasaja23
3 months ago

Por eso eres mi canal favorito, es justo lo que empezaba a necesitar hace 2 días

@estivenmeneses1328
3 months ago

excelente, con que asi se hace para crear un checker de cc

@jarvs10
3 months ago

Grande Master!

@Hackeandomivida
3 months ago

pupeeterrr grande fazt

@Shinigami4rt
3 months ago

me pregunto si a un bot de telegram le puedo implementar el web scraping

@mastermaster153
3 months ago

No es eso ilegal Fazt?

@arnoldtorres3375
3 months ago

Lo que esta buscando 🦾