
Adélia Cruz
Neural Network Developer
A raspage de dados da Web se tornou uma habilidade essencial para coletar dados de sites, seja para análise de mercado, pesquisa acadêmica ou qualquer projeto orientado por dados. Playwright é uma excelente ferramenta de automação de navegador que pode ser usada para raspar sites de forma eficiente, oferecendo suporte para vários idiomas, incluindo Ruby. Neste guia, veremos como configurar e usar o Playwright em Ruby para raspar um site, usando quotes.toscrape.com como exemplo.
Playwright é uma estrutura moderna de automação para testes da Web, semelhante ao Selenium, mas com execução mais rápida e suporte para todos os navegadores modernos como Chromium, Firefox e WebKit. Ele oferece poderosas ferramentas de automação de navegador para raspagem sem cabeça e com cabeça, navegação na página, interação com formulários e muito mais.
Ruby é uma linguagem popular conhecida por sua simplicidade e sintaxe amigável ao desenvolvedor. Usando Playwright com Ruby, você pode aproveitar o poder da automação de navegador moderna, mantendo a estrutura de código limpa e fácil de ler do Ruby. Playwright é ideal para raspagem de dados da Web devido à sua velocidade, condições de espera integradas e capacidade de lidar com conteúdo dinâmico carregado por JavaScript.
Para começar a raspar com Playwright em Ruby, você precisará configurar algumas coisas:
Certifique-se de ter Ruby instalado em sua máquina. Você pode verificar isso executando o seguinte comando em seu terminal:
ruby -v
Se Ruby não estiver instalado, você pode instalá-lo por meio de rbenv ou diretamente do site oficial do Ruby.
Em seguida, você precisará instalar o gem playwright-ruby-client. Este gem fornece vinculações Playwright para Ruby, permitindo que você interaja com navegadores programaticamente.
Execute o seguinte comando para instalar o gem:
gem install playwright-ruby-client
Após instalar o gem, você precisa instalar os navegadores suportados por Playwright. Execute o seguinte comando:
playwright install
Isso baixará Chromium, Firefox e WebKit para uso com Playwright.
Vamos mergulhar em um exemplo simples de raspagem de dados em que extrairemos citações de quotes.toscrape.com. O site contém citações famosas junto com os autores, tornando-se um ótimo recurso para prática de raspagem de dados.
Primeiro, você precisa inicializar Playwright e iniciar um navegador (Chromium neste caso). Veja como fazer isso:
require 'playwright-ruby-client'
Playwright.create(playwright_cli_executable_path: '/path/to/cli') do |playwright|
browser = playwright.chromium.launch(headless: true) # Inicie o navegador sem cabeça
page = browser.new_page
page.goto('http://quotes.toscrape.com/')
puts "Título da página: #{page.title}" # Opcional: Imprime o título da página para verificar se está carregado corretamente
# Feche o navegador
browser.close
end
Neste trecho de código, Playwright abre a página quotes.toscrape.com em um navegador Chromium sem cabeça.
Agora, queremos raspar as citações e seus autores da página. Para fazer isso, precisamos inspecionar a estrutura da página e identificar os elementos que contêm as citações e os autores.
Aqui está o código que extrai as citações e seus 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/')
# Encontre todos os elementos de citação
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ções: #{text} - Autor: #{author}"
end
browser.close
end
Este script usa Playwright para visitar o site, extrair o texto da citação e o autor, e depois imprimí-los no console. A classe .quote direciona cada bloco de citação, e usamos .text e .author para extrair as informações relevantes.
O site de citações usa paginação, então você pode querer raspar todas as páginas, não apenas a primeira. Veja como lidar com a paginação:
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ções: #{text} - Autor: #{author}"
end
next_button = page.query_selector('li.next > a')
break unless next_button # Saia do loop se não houver próxima página
next_button.click
page.wait_for_load_state('load') # Aguarde a próxima página carregar
end
browser.close
end
Este código itera por cada página clicando no botão "Próximo" até que não haja mais páginas. Ele continua a extrair as citações e autores de cada página.
Este guia explica como resolver captcha / reCaptcha usando a extensão de navegador CapSolver com Playwright em Ruby. CapSolver fornece uma maneira fácil de lidar com captchas sem escrever código extra para resolvê-los diretamente.
Primeiro, certifique-se de ter Playwright instalado:
gem install playwright-ruby-client
Baixe a extensão CapSolver:
./CapSolver.Browser.Extension.Configure a extensão:
./assets/config.json no diretório da extensão CapSolver.enabledForcaptcha como true e ajuste o captchaMode para token para resolução automática.Exemplo config.json:
{
"enabledForcaptcha": true,
"captchaMode": "token"
// outras configurações permanecem as mesmas
}
Aqui está como você pode carregar a extensão CapSolver no navegador Playwright:
Exija Playwright e configure os caminhos:
require 'playwright-ruby-client'
require 'fileutils'
# Obtenha o caminho para o diretório da extensão CapSolver
extension_path = File.join(Dir.pwd, 'CapSolver.Browser.Extension')
Inicie o navegador com a extensão CapSolver:
Use Playwright para iniciar um navegador Chromium com a extensão CapSolver carregada.
Playwright.create(playwright_cli_executable_path: '/path/to/cli') do |playwright|
browser = playwright.chromium.launch_persistent_context('', {
headless: false, # Execute com um navegador visível para depuração
args: [
"--disable-extensions-except=#{extension_path}",
"--load-extension=#{extension_path}"
]
})
page = browser.new_page
page.goto('https://quotes.toscrape.com/') # Substitua pela URL de destino
# Localize a caixa de seleção ou estrutura captcha e interaja com ela
page.wait_for_selector('iframe', state: 'visible') # Ajuste o seletor para direcionar o iframe captcha
page.click('iframe') # Ajuste o evento de clique para sua interação com o captcha
# Etapas adicionais podem ser adicionadas com base nos requisitos do site
browser.close
end
As etapas para resolver reCaptcha são as mesmas de captcha.
Reivindique seu Código Bônus para as principais soluções de captcha em CapSolver: scrape. Após resgatá-lo, você receberá um bônus extra de 5% após cada recarga, ilimitadas vezes.

Usar Playwright em Ruby para raspagem de dados da Web oferece uma maneira eficiente e poderosa de extrair dados de sites. Seja conteúdo estático simples ou páginas carregadas dinamicamente, Playwright lida com ambos sem esforço. Neste tutorial, raspamos citações e autores de um site, mas Playwright pode fazer muito mais, como interagir com formulários, tirar capturas de tela ou até mesmo executar testes baseados em navegador.
Se você está procurando uma ferramenta robusta para raspagem de dados da Web em Ruby, Playwright é uma excelente escolha. É fácil de configurar, rápido e flexível o suficiente para lidar com várias tarefas de raspagem de dados.
Aprenda como resolver desafios do AWS WAF e CAPTCHAs sem um navegador. Utilize a API do CapSolver para gerar tokens e contornar códigos de status 405.

Configure a raspagem de web no Linux com Python, proxies e tratamento de CAPTCHA. Um guia prático para desenvolvedores que aborda Scrapy, Playwright, CapSolver e pipelines de dados.

Aprenda o que causa o erro 1020 Acesso Negado do Cloudflare, como o Firewall de Aplicação Web e a detecção de bots funcionam e como os desenvolvedores podem reduzir falsos positivos em fluxos de trabalho de automação legítimos.
