
Adélia Cruz
Neural Network Developer
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.
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.
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.
Para comenzar a raspar con Playwright en Ruby, deberá configurar algunas cosas:
Asegúrese de tener Ruby instalado en su máquina. Puede verificar esto ejecutando el siguiente comando en su terminal:
ruby -v
Si Ruby no está instalado, puede instalarlo a través de rbenv o directamente desde el sitio oficial de Ruby.
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:
gem install playwright-ruby-client
Después de instalar la gema, debe instalar los navegadores compatibles con Playwright. Ejecute el siguiente comando:
playwright install
Esto descargará Chromium, Firefox y WebKit para su uso con Playwright.
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:
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.
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:
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.
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:
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.
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.
Primero, asegúrese de tener Playwright instalado:
gem install playwright-ruby-client
Descargar la extensión CapSolver:
./CapSolver.Browser.Extension.Configurar la extensión:
./assets/config.json en el directorio de la extensión CapSolver.enabledForcaptcha en true y ajuste el captchaMode en token para la resolución automática.Ejemplo config.json:
{
"enabledForcaptcha": true,
"captchaMode": "token"
// otras configuraciones permanecen igual
}
Aquí se explica cómo puede cargar la extensión CapSolver en el navegador Playwright:
Requerir Playwright y configurar rutas:
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')
Lanzar el navegador con la extensión CapSolver:
Utilice Playwright para lanzar un navegador Chromium con la extensión CapSolver cargada.
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.
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.

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.
Aprende a resolver desafíos de AWS WAF y CAPTCHAs sin navegador. Utiliza la API de CapSolver para generar tokens y evadir códigos de estado 405.

Configurar el raspado de web en Linux con Python, proxies y manejo de CAPTCHA. Una guía práctica para desarrolladores que cubre Scrapy, Playwright, CapSolver y tuberías de datos.

Aprende qué desencadena el error de Cloudflare 1020 Acceso denegado, cómo funciona el Firewall de Aplicaciones Web y la detección de bots, y cómo los desarrolladores pueden reducir los falsos positivos en flujos de trabajo de automatización legítimos.
