CAPSOLVER
Blog
Cómo usar Playwright en Ruby para raspar la web

Cómo usar Playwright en Ruby para raspar la web

Logo of CapSolver

Adélia Cruz

Neural Network Developer

08-Oct-2024

El web scraping se ha convertido en una habilidad esencial para recopilar datos de sitios web, ya sea para análisis de mercado, investigación académica o cualquier proyecto basado en datos. Playwright es una excelente herramienta de automatización de navegador que se puede utilizar para raspar sitios web de manera eficiente, ofreciendo soporte para múltiples lenguajes, incluido Ruby. En esta guía, analizaremos cómo configurar y utilizar Playwright en Ruby para raspar un sitio web, usando quotes.toscrape.com como ejemplo.

¿Qué es Playwright?

Playwright es un marco de automatización moderno para pruebas web, similar a Selenium pero con una ejecución más rápida y soporte para todos los navegadores modernos como Chromium, Firefox y WebKit. Ofrece potentes herramientas de automatización de navegador para raspado sin cabeza y con cabeza, navegación por páginas, interacción con formularios y más.

¿Por qué usar Playwright con Ruby?

Ruby es un lenguaje popular conocido por su simplicidad y sintaxis fácil de usar para los desarrolladores. Al usar Playwright con Ruby, puede aprovechar el poder de la automatización de navegador moderna mientras mantiene la estructura de código limpia y fácil de leer de Ruby. Playwright es ideal para el web scraping debido a su velocidad, las condiciones de espera integradas y la capacidad de manejar contenido dinámico cargado por JavaScript.

Configurar Playwright en Ruby

Para comenzar a raspar con Playwright en Ruby, deberá configurar algunas cosas:

1. Instalar Ruby

Asegúrese de tener Ruby instalado en su máquina. Puede verificar esto ejecutando el siguiente comando en su terminal:

bash Copy
ruby -v

Si Ruby no está instalado, puede instalarlo a través de rbenv o directamente desde el sitio oficial de Ruby.

2. Instalar la gema Playwright

Luego, deberá instalar la gema playwright-ruby-client. Esta gema proporciona enlaces Playwright para Ruby, lo que le permite interactuar con los navegadores mediante programación.

Ejecute el siguiente comando para instalar la gema:

bash Copy
gem install playwright-ruby-client

Después de instalar la gema, debe instalar los navegadores compatibles con Playwright. Ejecute el siguiente comando:

bash Copy
playwright install

Esto descargará Chromium, Firefox y WebKit para su uso con Playwright.

Ejemplo de raspado: raspar citas de un sitio web

Vamos a sumergirnos en un simple ejemplo de raspado donde extraeremos citas de quotes.toscrape.com. El sitio web contiene citas famosas junto con los autores, lo que lo convierte en un gran recurso para practicar el raspado.

Primero, necesita inicializar Playwright y lanzar un navegador (Chromium en este caso). Aquí se explica cómo hacerlo:

ruby Copy
require 'playwright-ruby-client'

Playwright.create(playwright_cli_executable_path: '/path/to/cli') do |playwright|
  browser = playwright.chromium.launch(headless: true)  # Lanzar navegador sin cabeza
  page = browser.new_page
  page.goto('http://quotes.toscrape.com/')

  puts "Título de la página: #{page.title}"  # Opcional: Imprimir título de página para verificar si se carga correctamente

  # Cerrar el navegador
  browser.close
end

En este fragmento, Playwright abre la página quotes.toscrape.com en un navegador Chromium sin cabeza.

Paso 2: Raspar citas y autores

Ahora, queremos raspar las citas y sus autores de la página. Para hacer esto, necesitamos inspeccionar la estructura de la página e identificar los elementos que contienen las citas y los autores.

Aquí está el código que extrae las citas y sus respectivos autores:

ruby Copy
require 'playwright-ruby-client'

Playwright.create(playwright_cli_executable_path: '/path/to/cli') do |playwright|
  browser = playwright.chromium.launch(headless: true)
  page = browser.new_page
  page.goto('http://quotes.toscrape.com/')

  # Encontrar todos los elementos de citas
  quotes = page.query_selector_all('.quote')

  quotes.each do |quote|
    text = quote.query_selector('.text').text_content.strip
    author = quote.query_selector('.author').text_content.strip
    puts "Cita: #{text} - Autor: #{author}"
  end

  browser.close
end

Este script utiliza Playwright para visitar el sitio web, extraer el texto de la cita y el autor, y luego imprimirlos en la consola. La clase .quote apunta a cada bloque de citas, y usamos .text y .author para extraer la información relevante.

Paso 3: Manejar la paginación

El sitio web de citas utiliza paginación, por lo que es posible que desee raspar todas las páginas, no solo la primera. Aquí se explica cómo manejar la paginación:

ruby Copy
require 'playwright-ruby-client'

Playwright.create(playwright_cli_executable_path: '/path/to/cli') do |playwright|
  browser = playwright.chromium.launch(headless: true)
  page = browser.new_page
  page.goto('http://quotes.toscrape.com/')

  loop do
    quotes = page.query_selector_all('.quote')
    
    quotes.each do |quote|
      text = quote.query_selector('.text').text_content.strip
      author = quote.query_selector('.author').text_content.strip
      puts "Cita: #{text} - Autor: #{author}"
    end

    next_button = page.query_selector('li.next > a')
    break unless next_button  # Salir del bucle si no hay una página siguiente
    
    next_button.click
    page.wait_for_load_state('load')  # Esperar a que se cargue la siguiente página
  end

  browser.close
end

Este código recorre en bucle cada página haciendo clic en el botón "Siguiente" hasta que no haya más páginas. Continúa extrayendo las citas y los autores de cada página.

Guía paso a paso: Resolución de captcha usando Playwright y CapSolver en Ruby

Esta guía explica cómo resolver captcha / reCaptcha usando la extensión de navegador CapSolver con Playwright en Ruby. CapSolver proporciona una manera fácil de manejar captchas sin escribir código adicional para resolverlos directamente.

Paso 1: Instalar Playwright y dependencias

Primero, asegúrese de tener Playwright instalado:

bash Copy
gem install playwright-ruby-client

Paso 2: Descargar y configurar la extensión CapSolver

  1. Descargar la extensión CapSolver:

  2. Configurar la extensión:

    • Localice el archivo de configuración ./assets/config.json en el directorio de la extensión CapSolver.
    • Establezca la opción enabledForcaptcha en true y ajuste el captchaMode en token para la resolución automática.

    Ejemplo config.json:

    json Copy
    {
      "enabledForcaptcha": true,
      "captchaMode": "token"
      // otras configuraciones permanecen igual
    }

Paso 3: Configurar Playwright con la extensión CapSolver

Aquí se explica cómo puede cargar la extensión CapSolver en el navegador Playwright:

  1. Requerir Playwright y configurar rutas:

    ruby Copy
    require 'playwright-ruby-client'
    require 'fileutils'
    
    # Obtener la ruta para el directorio de la extensión CapSolver
    extension_path = File.join(Dir.pwd, 'CapSolver.Browser.Extension')
  2. Lanzar el navegador con la extensión CapSolver:
    Utilice Playwright para lanzar un navegador Chromium con la extensión CapSolver cargada.

    ruby Copy
    Playwright.create(playwright_cli_executable_path: '/path/to/cli') do |playwright|
      browser = playwright.chromium.launch_persistent_context('', {
        headless: false,  # Ejecutar con un navegador visible para depuración
        args: [
          "--disable-extensions-except=#{extension_path}",
          "--load-extension=#{extension_path}"
        ]
      })
    
      page = browser.new_page
      page.goto('https://quotes.toscrape.com/')  # Reemplazar con la URL de destino
    
      # Localizar la casilla de verificación o el marco captcha e interactuar con él
      page.wait_for_selector('iframe', state: 'visible')  # Ajustar el selector para apuntar al iframe captcha
      page.click('iframe')  # Ajustar el evento de clic para la interacción de su captcha
    
      # Se pueden agregar pasos adicionales basados en los requisitos del sitio
      
      browser.close
    end

Los pasos para resolver reCaptcha son los mismos que para captcha.

Código de bonificación

Reclama tu Código de bonificación para las mejores soluciones de captcha en CapSolver: scrape. Después de canjearlo, obtendrás un bono adicional del 5% después de cada recarga, sin límite de veces.

Conclusión

Usar Playwright en Ruby para el web scraping ofrece una manera eficiente y poderosa de extraer datos de sitios web. Ya sea contenido estático simple o páginas cargadas dinámicamente, Playwright maneja ambos sin esfuerzo. En este tutorial, raspamos citas y autores de un sitio web, pero Playwright puede hacer mucho más, como interactuar con formularios, tomar capturas de pantalla o incluso ejecutar pruebas basadas en navegador.

Si está buscando una herramienta robusta para el web scraping en Ruby, Playwright es una excelente opción. Es fácil de configurar, rápido y lo suficientemente flexible como para manejar diversas tareas de raspado.

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

Error de Cloudflare 1006, 1007, 1008
Error de Cloudflare 1006, 1007, 1008 Solución para resolver | Cómo arreglarlo

¿Tienes problemas con errores de Cloudflare 1006, 1007 o 1008? Aprende soluciones prácticas para resolver estos rechazos de acceso y mejorar tu experiencia de rastreo web.

Cloudflare
Logo of CapSolver

Ethan Collins

05-Dec-2025

AI-LLM: La solución del futuro para el control de riesgos, el reconocimiento de imágenes y la resolución de CAPTCHA
IA-MLLE: La Solución del Futuro para el Control de Riesgos, Reconocimiento de Imágenes y Resolución de CAPTCHA

Una exploración profunda de cómo los LLMs reconfiguran la resolución de CAPTCHA gráficos, combinando el razonamiento de cero shots con la precisión de redes neuronales convolucionales para el control de riesgos moderno.

Logo of CapSolver

Adélia Cruz

05-Dec-2025

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

Cambiar el Agente de Usuario en Selenium
Cambiar el Agente de Usuario en Selenium | Pasos y Mejores Prácticas

Cambiar el Agente de Usuario en Selenium es un paso crucial para muchas tareas de scraping web. Ayuda a disfrazar el script de automatización como un navegador regular...

The other captcha
Logo of CapSolver

Adélia Cruz

05-Dec-2025

Cómo identificar si la `action` es requerida para resolver Cloudflare Turnstile usando la extensión CapSolver
Cómo identificar si `action` es necesario para resolver Cloudflare Turnstile usando la extensión de CapSolver

Aprende a identificar la acción para resolver eficazmente el captcha de Cloudflare Turnstile. Sigue nuestra guía paso a paso sobre cómo usar las herramientas y técnicas de Capsolver.

Cloudflare
Logo of CapSolver

Adélia Cruz

05-Dec-2025

9proxy
Descubre el Poder de 9Proxy: Una Revisión Completa

En este artículo, te mostraremos qué es 9proxy y los servicios que ofrecen.

Partners
Logo of CapSolver

Emma Foster

04-Dec-2025