CAPSOLVER
Blog
Cómo hacer Web Scraping con Puppeteer y NodeJS en 2024 | Tutorial de Puppeteer

Cómo hacer scraping web con Puppeteer y NodeJS | Tutorial de Puppeteer

Logo of CapSolver

Adélia Cruz

Neural Network Developer

12-Nov-2025

El raspado de web es una técnica poderosa utilizada para extraer datos de sitios web. En este tutorial, exploraremos cómo realizar el raspado de web utilizando Puppeteer y Node.js, dos tecnologías populares en el ecosistema de desarrollo web. Puppeteer es una biblioteca de Node.js que proporciona una API de alto nivel para controlar navegadores Chrome o Chromium en modo headless. Permite automatizar acciones del navegador, navegar por páginas web y extraer los datos deseados. Al combinar Puppeteer con la flexibilidad de Node.js, podemos construir soluciones robustas y eficientes para el raspado de web. Comencemos con los pasos involucrados en el raspado de sitios web utilizando Puppeteer.

¿Qué es Puppeteer?

Puppeteer es un marco de vanguardia que permite a los testers realizar pruebas de navegadores headless con Google Chrome. Con las pruebas de Puppeteer, los testers pueden ejecutar comandos de JavaScript para interactuar con páginas web, incluyendo acciones como hacer clic en enlaces, completar formularios y enviar botones.

Desarrollado por Google, Puppeteer es una biblioteca de Node.js que permite un control fluido de Chrome en modo headless a través del Protocolo DevTools. Proporciona una serie de APIs de alto nivel que facilitan las pruebas automatizadas, el desarrollo de características de sitios web, la depuración, la inspección de elementos y el análisis de rendimiento.

Con Puppeteer, puedes usar (navegador headless) Chromium o Chrome para abrir sitios web, completar formularios, hacer clic en botones, extraer datos y realizar generalmente cualquier acción que un humano podría realizar al usar una computadora. Esto hace que Puppeteer sea una herramienta realmente poderosa para el raspado de web, pero también para automatizar flujos de trabajo complejos en la web. Tener un claro entendimiento de Puppeteer y sus capacidades es invaluable para testers y desarrolladores en el entorno actual de desarrollo web.

¿Cuáles son las ventajas de utilizar Puppeteer para el raspado de web?

Axios y Cheerio son excelentes opciones para el raspado con JavaScript. Sin embargo, esto plantea dos problemas: rastrear contenido dinámico y software anti- raspado. Como Puppeteer es un navegador headless, no tiene problemas para raspado contenido dinámico.
También Puppeteer ofrece una serie de ventajas significativas para el raspado de web:

  1. Automatización de navegadores headless: Con Puppeteer, puedes controlar un navegador Chrome en modo headless de forma programática, lo que permite automatizar acciones del navegador como hacer clic, desplazarse, completar formularios y extraer datos sin una ventana de navegador visible.

  2. Funcionalidad completa de Chrome y manipulación del DOM: Puppeteer proporciona acceso a la funcionalidad completa de Chrome, lo que lo hace adecuado para raspado de sitios web modernos con contenido basado en JavaScript. Puedes interactuar fácilmente con elementos de la página, modificar atributos y realizar acciones como hacer clic en botones o enviar formularios.

  3. Simulación de interacciones de usuarios y captura de eventos: Puppeteer te permite simular interacciones de usuarios y capturar solicitudes y respuestas de red. Esto permite raspado de páginas que requieren entrada de usuario o contenido cargado dinámicamente a través de solicitudes AJAX o WebSocket.

  4. Capacidad de rendimiento y depuración: El motor Chrome optimizado de Puppeteer garantiza un raspado eficiente, y su integración con DevTools ofrece capacidades robustas de depuración y pruebas. Puedes depurar páginas web, registrar mensajes de consola, trazar actividad de red y analizar métricas de rendimiento.

En las siguientes guías, exploraré el proceso de raspado de web utilizando Puppeteer y Node.js, junto con la integración de una solución de resolución de CAPTCHA de vanguardia, CapSolver, para superar uno de los principales desafíos encontrados durante el raspado de web.

Código de bonificación

Un código de bonificación para soluciones de CAPTCHA top; CapSolver : WEBS. Después de canjearlo, obtendrás un bono adicional del 5% después de cada recarga, ilimitado

Cómo resolver CAPTCHA en Puppeteer usando CapSolver mientras se raspa web

El objetivo será resolver el CAPTCHA ubicado en recaptcha-demo.appspot.com usando CapSolver.

Formulario CAPTCHA

Durante el tutorial, tomaremos los siguientes pasos para resolver el CAPTCHA anterior:

  1. Instalar las dependencias requeridas.
  2. Encontrar la clave del sitio del Formulario CAPTCHA.
  3. Configurar CapSolver.
  4. Resolver el CAPTCHA.

Instalar dependencias requeridas

Para comenzar, necesitamos instalar las siguientes dependencias para este tutorial:

  • capsolver-python: El SDK oficial de Python para una integración sencilla con la API de CapSolver.
  • pyppeteer: pyppeteer es una versión de Python de Puppeteer.

Instale estas dependencias ejecutando el siguiente comando:

Copy
python -m pip install pyppeteer capsolver-python

Ahora, cree un archivo llamado main.py donde escribiremos el código de Python para resolver CAPTCHAS.

bash Copy
touch main.py

Obtener la clave del sitio del formulario CAPTCHA

La clave del sitio es un identificador único proporcionado por Google que identifica únicamente cada CAPTCHA.

Para resolver el CAPTCHA, es necesario enviar la clave del sitio a CapSolver.

Busquemos la clave del sitio del Formulario CAPTCHA siguiendo estos pasos:

  1. Visite el Formulario CAPTCHA.
Formulario CAPTCHA
  1. Abra las herramientas de desarrollo de Chrome presionando Ctrl/Cmd + Shift + I.
  2. Vaya a la pestaña "Elementos" y busque data-sitekey. Copie el valor del atributo.
Clave del sitio
  1. Almacene la clave del sitio en un lugar seguro, ya que se usará en una sección posterior cuando envíe el CAPTCHA a CapSolver.

Configurar CapSolver

Para resolver CAPTCHAS usando CapSolver, necesitas crear una cuenta en CapSolver, agregar fondos a tu cuenta y obtener una clave de API. Siga estos pasos para configurar su cuenta de CapSolver:

  1. Regístrese para una cuenta en CapSolver visitando CapSolver

  2. Agregue fondos a su cuenta de CapSolver utilizando PayPal, Criptomonedas u otros métodos de pago listados. Tenga en cuenta que el monto mínimo de depósito es de $6 y se aplican impuestos adicionales.

  3. Ahora, copie la clave de API proporcionada por CapSolver y guárdela de forma segura para su uso posterior.

Resolver el CAPTCHA

Ahora, procederemos a resolver el CAPTCHA usando CapSolver. El proceso general implica tres pasos:

  1. Iniciar el navegador y visitar la página del CAPTCHA usando pyppeteer.
  2. Resolver el CAPTCHA usando CapSolver.
  3. Enviar la respuesta del CAPTCHA.

Lea los siguientes fragmentos de código para entender estos pasos.
Iniciar el navegador y visitar la página del CAPTCHA:

python Copy
# Iniciar el navegador.
browser = await launch({'headless': False})

# Cargar la página objetivo.
captcha_page_url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
page = await browser.newPage()
await page.goto(captcha_page_url)

Resolver el CAPTCHA usando CapSolver:

python Copy
# Resolver el reCAPTCHA usando CapSolver.
capsolver = RecaptchaV2Task("YOUR_API_KEY")

site_key = "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9"
task_id = capsolver.create_task(captcha_page_url, site_key)
result = capsolver.join_task_result(task_id)

# Obtener el código de reCAPTCHA resuelto.
code = result.get("gRecaptchaResponse")

Establecer el CAPTCHA resuelto en el formulario y enviarlo:

python Copy
# Establecer el código de reCAPTCHA resuelto en el formulario.
recaptcha_response_element = await page.querySelector('#g-recaptcha-response')
await page.evaluate(f'(element) => element.value = "{code}"', recaptcha_response_element)

# Enviar el formulario.
submit_btn = await page.querySelector('button[type="submit"]')
await submit_btn.click()

Unir todo

A continuación, se muestra el código completo para el tutorial, que resolverá el CAPTCHA usando CapSolver.

python Copy
import asyncio
from pyppeteer import launch
from capsolver_python import RecaptchaV2Task

# El siguiente código resuelve un desafío reCAPTCHA v2 usando CapSolver.
async def main():
    # Iniciar Navegador.
    browser = await launch({'headless': False})

    # Cargar la página objetivo.
    captcha_page_url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
    page = await browser.newPage()
    await page.goto(captcha_page_url)

    # Resolver el reCAPTCHA usando CapSolver.
    print("Resolviendo captcha")
    capsolver = RecaptchaV2Task("YOUR_API_KEY")

    site_key = "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9"
    task_id = capsolver.create_task(captcha_page_url, site_key)
    result = capsolver.join_task_result(task_id)

    # Obtener el código de reCAPTCHA resuelto.
    code = result.get("gRecaptchaResponse")
    print(f"ReCAPTCHA resuelto con éxito. El código de resolución es {code}")

    # Establecer el código de reCAPTCHA resuelto en el formulario.
    recaptcha_response_element = await page.querySelector('#g-recaptcha-response')
    await page.evaluate(f'(element) => element.value = "{code}"', recaptcha_response_element)

    # Enviar el formulario.
    submit_btn = await page.querySelector('button[type="submit"]')
    await submit_btn.click()

    # Pausar la ejecución para que pueda ver la pantalla después de la presentación antes de cerrar el controlador
    input("Envío de CAPTCHA Exitoso. Presione enter para continuar")

    # Cerrar Navegador.
    await browser.close()

if __name__ == "__main__":
    asyncio.get_event_loop().run_until_complete(main())

Pegue el código anterior en su archivo main.py. Reemplace YOUR_API_KEY con su clave de API y ejecute el código.

Observará que el CAPTCHA se resolverá y será recibido con una página de éxito.

Cómo resolver CAPTCHA en NodeJS usando CapSolver mientras se raspa web

Requisitos previos

  • Proxy (Opcional)
  • Node.JS instalado
  • Clave de API de Capsolver

Paso 1: Instalar los paquetes necesarios

Ejecute los siguientes comandos para instalar los paquetes requeridos:

python Copy
npm install axios

Código de Node.JS para resolver reCaptcha v2 sin proxy

Aquí hay un script de muestra en Node.JS para realizar la tarea:

js Copy
const axios = require('axios');

const PAGE_URL = ""; // Reemplazar con su Sitio Web
const SITE_KEY = ""; // Reemplazar con su Sitio Web
const CLIENT_KEY = "";  // Reemplazar con su Clave de API de CAPSOLVER

async function createTask(payload) {
  try {
    const res = await axios.post('https://api.capsolver.com/createTask', {
      clientKey: CLIENT_KEY,
      task: payload
    });
    return res.data;
  } catch (error) {
    console.error(error);
  }
}
async function getTaskResult(taskId) {
    try {
        success = false;
        while(success == false){

            await sleep(1000);
        console.log("Obteniendo resultado de tarea para ID de tarea: " + taskId);
      const res = await axios.post('https://api.capsolver.com/getTaskResult', {
        clientKey: CLIENT_KEY,
        taskId: taskId
      });
      if( res.data.status == "ready") {
        success = true;
        console.log(res.data)
        return res.data;
      }
    }
  
    } catch (error) {
      console.error(error);
      return null;
    }
  }
  

async function solveReCaptcha(pageURL, sitekey) {
  const taskPayload = {
    type: "ReCaptchaV2TaskProxyless",
    websiteURL: pageURL,
    websiteKey: sitekey,
  };
  const taskData = await createTask(taskPayload);
  return await getTaskResult(taskData.taskId);
}
function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}
async function main() {
  try {
   
      const response = await solveReCaptcha(PAGE_URL, SITE_KEY );
      console.log(`Token recibido: ${response.solution.gReCaptcharesponse}`);
        
    }
catch (error) {
    console.error(`Error: ${error}`);
  }

}
main();

👀 Más información

Conclusión:

En este tutorial, hemos aprendido cómo resolver CAPTCHAS usando CapSolver mientras realizamos raspado de web con Puppeteer y Node.js. Al aprovechar la API de CapSolver, podemos automatizar el proceso de resolución de CAPTCHAS y hacer que las tareas de raspado de web sean más eficientes y confiables. Recuerde cumplir con los términos y condiciones de los sitios web que raspe y use el raspado de web de manera responsable.

Aviso de Cumplimiento: La información proporcionada en este blog es solo para fines informativos. CapSolver se compromete a cumplir con todas las leyes y regulaciones aplicables. El uso de la red de CapSolver para actividades ilegales, fraudulentas o abusivas está estrictamente prohibido y será investigado. Nuestras soluciones para la resolución de captcha mejoran la experiencia del usuario mientras garantizan un 100% de cumplimiento al ayudar a resolver las dificultades de captcha durante el rastreo de datos públicos. Fomentamos el uso responsable de nuestros servicios. Para obtener más información, visite nuestros Términos de Servicio y Política de Privacidad.

Máse

Cómo resolver CAPTCHAs durante el scraping web con Scrapling y CapSolver
Cómo resolver captchas al realizar scraping web con Scrapling y CapSolver

Scrapling + CapSolver permite el scraping automatizado con ReCaptcha v2/v3 y bypass de Cloudflare Turnstile.

web scraping
Logo of CapSolver

Ethan Collins

05-Dec-2025

Scraping de web con Selenium y Python
Raspado de web con Selenium y Python | Resolver Captcha al realizar el raspado de web

En este artículo te familiarizarás con el web scraping usando Selenium y Python, y aprenderás a resolver el Captcha involucrado en el proceso para una extracción de datos eficiente.

web scraping
Logo of CapSolver

Rajinder Singh

04-Dec-2025

Raspado de web en Golang con Colly
Raspado de web en Golang con Colly

En este blog, exploramos el mundo del raspado de web usando Golang con la biblioteca Colly. El guía comienza ayudándote a configurar tu proyecto de Golang e instalar el paquete Colly. Luego recorremos la creación de un raspador básico para extraer enlaces de una página de Wikipedia, mostrando la facilidad de uso y las potentes características de Colly.

web scraping
Logo of CapSolver

Emma Foster

04-Dec-2025

¿Qué es el raspado de web?
¿Qué es el scraping web? | Casos de uso comunes y problemas

Conoce el web scraping: aprende sus beneficios, supera los desafíos con facilidad y potencia tu negocio con CapSolver.

web scraping
Logo of CapSolver

Adélia Cruz

03-Dec-2025

¿Qué es un titiritero?
¿Qué es Puppeteer y cómo usarlo en el scraping de web | Guía Completa 2026

Este guía completa se adentrará en qué es Puppeteer y cómo usarlo de manera efectiva en el raspado de web.

web scraping
Logo of CapSolver

Adélia Cruz

03-Dec-2025

Cómo hacer un escáner de web con un agente de IA (Tutorial amigable para principiantes)
Cómo hacer un scraper de web de IA (Tutorial para principiantes)

Aprende a crear un raspador de web con un agente de inteligencia artificial desde cero con este tutorial accesible para principiantes. Descubre los componentes principales, ejemplos de código y cómo evitar medidas anti-bot como los CAPTCHAs para una recopilación de datos confiable.

web scraping
Logo of CapSolver

Adélia Cruz

02-Dec-2025