CAPSOLVER
Blog
Como usar Playwright em Ruby para web scraping

Como usar Playwright em Ruby para Web Scraping

Logo of CapSolver

Adélia Cruz

Neural Network Developer

08-Oct-2024

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.

O que é Playwright?

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.

Por que usar Playwright com Ruby?

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.

Configurando Playwright em Ruby

Para começar a raspar com Playwright em Ruby, você precisará configurar algumas coisas:

1. Instale Ruby

Certifique-se de ter Ruby instalado em sua máquina. Você pode verificar isso executando o seguinte comando em seu terminal:

bash Copy
ruby -v

Se Ruby não estiver instalado, você pode instalá-lo por meio de rbenv ou diretamente do site oficial do Ruby.

2. Instale o Playwright Gem

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:

bash Copy
gem install playwright-ruby-client

Após instalar o gem, você precisa instalar os navegadores suportados por Playwright. Execute o seguinte comando:

bash Copy
playwright install

Isso baixará Chromium, Firefox e WebKit para uso com Playwright.

Exemplo de raspagem de dados: raspando citações de um site

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:

ruby Copy
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.

Etapa 2: Raspe citações e autores

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:

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/')

  # 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.

Etapa 3: Lidar com paginação

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:

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çõ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.

Guia passo a passo: resolvendo captcha usando Playwright e CapSolver em Ruby

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.

Etapa 1: Instale Playwright e Dependências

Primeiro, certifique-se de ter Playwright instalado:

bash Copy
gem install playwright-ruby-client

Etapa 2: Baixe e configure a extensão CapSolver

  1. Baixe a extensão CapSolver:

  2. Configure a extensão:

    • Localize o arquivo de configuração ./assets/config.json no diretório da extensão CapSolver.
    • Defina a opção enabledForcaptcha como true e ajuste o captchaMode para token para resolução automática.

    Exemplo config.json:

    json Copy
    {
      "enabledForcaptcha": true,
      "captchaMode": "token"
      // outras configurações permanecem as mesmas
    }

Etapa 3: Configure Playwright com a extensão CapSolver

Aqui está como você pode carregar a extensão CapSolver no navegador Playwright:

  1. Exija Playwright e configure os caminhos:

    ruby Copy
    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')
  2. Inicie o navegador com a extensão CapSolver:
    Use Playwright para iniciar um navegador Chromium com a extensão CapSolver carregada.

    ruby Copy
    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.

Código Bônus

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.

Conclusão

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.

Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.

Mais

Errore 1006, 1007, 1008 do Cloudflare
Erro do Cloudflare 1006, 1007, 1008 Solução para Resolver | Como Corrigir

Lidando com erros do Cloudflare 1006, 1007 ou 1008? Aprenda soluções práticas para resolver esses bloqueios de acesso e melhorar sua experiência de crawling na web.

Cloudflare
Logo of CapSolver

Anh Tuan

05-Dec-2025

Como resolver captchas ao fazer web scraping com Scrapling e CapSolver
Como resolver captchas ao realizar web scraping com o Scrapling e o CapSolver

Scrapling + CapSolver permite raspagem automatizada com ReCaptcha v2/v3 e Cloudflare Turnstile bypass.

web scraping
Logo of CapSolver

Aloísio Vítor

05-Dec-2025

Alterar o Agente de Usuário no Selenium
Alterar o User-Agent no Selenium | Passos & Boas Práticas

Alterar o Agente de Usuário no Selenium é um passo crucial para muitas tarefas de raspagem da web. Ajuda a disfarçar o script de automação como um navegador regular...

The other captcha
Logo of CapSolver

Emma Foster

05-Dec-2025

Como identificar se `action` é necessário para resolver o Cloudflare Turnstile usando a extensão CapSolver
Como identificar se `action` é necessário para resolver o Cloudflare Turnstile usando a extensão CapSolver

Aprenda a identificar ações para resolução eficaz de captchas cloudflare turnstile. Siga nosso guia passo a passo sobre o uso das ferramentas e técnicas do Capsolver.

Cloudflare
Logo of CapSolver

Aloísio Vítor

05-Dec-2025

9proxy
Descubra o Poder do 9Proxy: Uma Revisão Abrangente

Neste artigo, vamos mostrar a você o que é 9proxy e os serviços que eles oferecem.

Partners
Logo of CapSolver

Ethan Collins

04-Dec-2025

Raspagem de Web com Selenium e Python
Web Scraping com Selenium e Python | Resolvendo Captcha Ao Fazer Web Scraping

Neste artigo, você vai se familiarizar com a raspagem de dados da web usando o Selenium e o Python, e aprender a resolver o Captcha envolvido no processo para uma extração de dados eficiente.

web scraping
Logo of CapSolver

Anh Tuan

04-Dec-2025