CAPSOLVER
Blog
Raspagem da Web com Botright e Python em 2025

Web Scraping com Botright e Python em 2025

Logo of CapSolver

Lucas Mitchell

Automation Engineer

14-Nov-2024


Provavelmente está a questionar-se como resolver captchas usando BotRight, como usá-lo para criar um scraper simples ou, ainda melhor, um scraper avançado!
Bem, então este é o seu tutorial!

Introdução ao Botright

Introdução ao BotRight

BotRight é uma biblioteca Python avançada para automação web, concebida especificamente para navegar pelas crescentes complexidades dos sistemas de deteção de bots em vários websites. Ao contrário de ferramentas de automação básicas, BotRight vai além das interações simples, fornecendo controlos matizados que fazem com que a navegação automatizada pareça muito semelhante à humana. Esta ênfase na simulação do comportamento humano é crucial para aceder a websites que, normalmente, bloqueiam ou limitam bots.

Construído em cima do Selenium WebDriver, BotRight oferece uma API de alto nível que abstrai interações complexas do navegador em comandos simples, permitindo que tanto principiantes como utilizadores avançados desenvolvam scrapers sofisticados e scripts de automação sem a necessidade de gerir comandos de navegador de baixo nível. Isto torna-o uma excelente escolha para projetos que vão desde a recolha simples de dados até tarefas web complexas de várias etapas que exigem resiliência contra algoritmos de deteção de bots.

Porquê escolher BotRight?

BotRight fornece vários recursos que o destacam na paisagem da automação:

  1. Interações semelhantes à humana: O design do BotRight centra-se na simulação de ações reais de utilizadores, como movimentos suaves do rato, padrões de digitação naturais e atrasos de temporização. Estes comportamentos reduzem o risco de deteção e proporcionam acesso mais fiável a conteúdo que é normalmente restrito a utilizadores genuínos.

  2. Persistência do estado do navegador: Ao suportar perfis de navegador, BotRight permite manter o estado da sessão em várias execuções de automação. Esta funcionalidade é particularmente útil para tarefas que requerem persistência de login ou onde estados específicos de cookies e cache devem ser preservados.

  3. Facilidade de utilização: Apesar das suas capacidades avançadas, BotRight é incrivelmente fácil de usar. A sua API é estruturada para simplificar tarefas de automação complexas, removendo grande parte da sobrecarga técnica que normalmente acompanha as configurações do Selenium. Os principiantes podem começar rapidamente, enquanto os especialistas podem aproveitar a flexibilidade do BotRight para construir soluções altamente personalizadas.

  4. Escalabilidade para fluxos de trabalho complexos: BotRight adapta-se bem a tarefas mais avançadas, incluindo o manuseio de sites alimentados por AJAX, a gestão da extração de dados paginados, a resolução de CAPTCHAs e muito mais. Emparelhado com resolvedores de CAPTCHA como o CapSolver, BotRight pode lidar com fluxos de trabalho que exigem o desvio de CAPTCHAs, permitindo automatizar até mesmo websites fortemente protegidos.

  5. Extensões e plugins integrados: BotRight suporta a inclusão de várias extensões e plugins para melhorar as capacidades de automação. Por exemplo, a utilização de ferramentas como CapSolver dentro do BotRight ajuda a gerir desafios de CAPTCHA, desbloqueando uma gama mais ampla de websites para scraping ou automação.


Configurar Botright

Antes de começarmos, certifique-se de que tem Python 3.7 ou superior instalado no seu sistema. Siga estes passos para configurar Botright:

  1. Instalar Botright:

    bash Copy
    pip install botright
  2. Instalar o WebDriver Manager:

    Botright confia no pacote webdriver_manager para gerir drivers de navegador.

    bash Copy
    pip install webdriver-manager
  3. Verificar a instalação:

    Crie um novo ficheiro Python e importe Botright para garantir que está instalado corretamente.

    python Copy
    from botright import Botright

    Se não houver erros, Botright está instalado corretamente.


Criar scrapers básicos

Vamos criar scripts simples para raspar dados de quotes.toscrape.com usando Botright.

Scraping de citações

Script: scrape_quotes.py

python Copy
from botright import Botright

def scrape_quotes():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/")
        quotes = bot.find_elements_by_css_selector("div.quote")
        for quote in quotes:
            text = quote.find_element_by_css_selector("span.text").text
            author = quote.find_element_by_css_selector("small.author").text
            print(f"\"{text}\" - {author}")

if __name__ == "__main__":
    scrape_quotes()

Executar o script:

bash Copy
python scrape_quotes.py

Saída:

Copy
“O mundo como o criamos é um processo do nosso pensamento. Ele não pode ser mudado sem mudar o nosso pensamento.” - Albert Einstein
...

Explicação:

  • Usamos Botright como um gestor de contexto para garantir a configuração e desmontagem corretas.
  • Navegamos para o website usando bot.get().
  • Encontramos todos os elementos de citação e extraímos o texto e o autor.

Lidar com paginação

Script: scrape_quotes_pagination.py

python Copy
from botright import Botright

def scrape_all_quotes():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/")
        while True:
            quotes = bot.find_elements_by_css_selector("div.quote")
            for quote in quotes:
                text = quote.find_element_by_css_selector("span.text").text
                author = quote.find_element_by_css_selector("small.author").text
                print(f"\"{text}\" - {author}")

            # Verificar se há uma página seguinte
            next_button = bot.find_elements_by_css_selector('li.next > a')
            if next_button:
                next_button[0].click()
            else:
                break

if __name__ == "__main__":
    scrape_all_quotes()

Explicação:

  • Percorremos as páginas verificando se o botão "Seguinte" está disponível.
  • Usamos find_elements_by_css_selector para localizar elementos.
  • Clicamos no botão "Seguinte" para navegar para a página seguinte.

Scraping de conteúdo dinâmico

Script: scrape_dynamic_content.py

python Copy
from botright import Botright
import time

def scrape_tags():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/")
        # Clicar na ligação 'Top Ten tags' para carregar etiquetas dinamicamente
        bot.click('a[href="/tag/"]')
        # Esperar que o conteúdo dinâmico carregue
        time.sleep(2)
        tags = bot.find_elements_by_css_selector("span.tag-item > a")
        for tag in tags:
            tag_name = tag.text
            print(f"Tag: {tag_name}")

if __name__ == "__main__":
    scrape_tags()

Explicação:

  • Navegamos para a página de etiquetas clicando na ligação.
  • Esperamos que o conteúdo dinâmico carregue usando time.sleep().
  • Extraímos e imprimimos as etiquetas.

Submeter formulários e fazer login

Script: scrape_with_login.py

python Copy
from botright import Botright

def login_and_scrape():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/login")
        # Preencher o formulário de login
        bot.type('input#username', 'testuser')
        bot.type('input#password', 'testpass')
        bot.click("input[type='submit']")

        # Verificar o login verificando a presença de uma ligação de logout
        if bot.find_elements_by_css_selector('a[href="/logout"]'):
            print("Fez login com sucesso!")

            # Agora raspar as citações
            bot.get("https://quotes.toscrape.com/")
            quotes = bot.find_elements_by_css_selector("div.quote")
            for quote in quotes:
                text = quote.find_element_by_css_selector("span.text").text
                author = quote.find_element_by_css_selector("small.author").text
                print(f"\"{text}\" - {author}")
        else:
            print("O login falhou.")

if __name__ == "__main__":
    login_and_scrape()

Explicação:

  • Navegamos para a página de login e preenchemos as credenciais.
  • Verificamos o login verificando a presença de uma ligação de logout.
  • Em seguida, procedemos ao scraping do conteúdo disponível para utilizadores com sessão iniciada.

Nota: Como quotes.toscrape.com permite qualquer nome de utilizador e palavra-passe para demonstração, podemos usar credenciais fictícias.


Integrar CapSolver no Botright

Embora quotes.toscrape.com não tenha CAPTCHAs, muitos websites do mundo real têm. Para nos prepararmos para esses casos, vamos demonstrar como integrar CapSolver no nosso script Botright usando a extensão do navegador CapSolver.

Descarregar a extensão CapSolver

  1. Descarregar a extensão:

    • Visite a página Lançamentos do GitHub CapSolver.
    • Descarregue a versão mais recente, por exemplo, capsolver-chrome-extension-v0.2.3.zip.
    • Descompacte-a para um diretório na raiz do seu projeto, por exemplo, ./capsolver_extension.

Configurar a extensão CapSolver

  1. Localizar config.json:

    • Caminho: capsolver_extension/assets/config.json
  2. Editar config.json:

    json Copy
    {
      "apiKey": "YOUR_CAPSOLVER_API_KEY",
      "enabledForcaptcha": true,
      "captchaMode": "token",
      "enabledForRecaptchaV2": true,
      "reCaptchaV2Mode": "token",
      "solveInvisibleRecaptcha": true,
      "verbose": false
    }
    • Substitua "YOUR_CAPSOLVER_API_KEY" pela sua chave API CapSolver real.
    • Defina enabledForcaptcha e/ou enabledForRecaptchaV2 para true com base nos tipos de CAPTCHA que espera.
    • Defina o modo para "token" para resolução automática.

Carregar a extensão CapSolver no Botright

Para usar a extensão CapSolver no Botright, precisamos de configurar o navegador para carregar a extensão quando este iniciar.

Nota: Botright permite personalizar as opções do navegador, incluindo a adição de extensões.

Script modificado:

python Copy
from botright import Botright
from selenium.webdriver.chrome.options import Options
import os

def create_bot_with_capsolver():
    # Caminho para a pasta da extensão CapSolver
    extension_path = os.path.abspath('capsolver_extension')

    # Configurar opções do Chrome
    options = Options()
    options.add_argument(f"--load-extension={extension_path}")
    options.add_argument("--disable-gpu")
    options.add_argument("--no-sandbox")

    # Inicializar Botright com opções personalizadas
    bot = Botright(options=options)
    return bot

Explicação:

  • Importar Options:
    • De selenium.webdriver.chrome.options, para definir opções do Chrome.
  • Configurar opções do Chrome:
    • Usar options.add_argument() para adicionar a extensão CapSolver.
  • Inicializar Botright com opções:
    • Passar as options para Botright ao criar uma instância.

Exemplo de script com integração do CapSolver

Vamos demonstrar a integração navegando para um site com um reCAPTCHA, como a demonstração do reCAPTCHA do Google.

Script: scrape_with_capsolver_extension.py

python Copy
from botright import Botright
from selenium.webdriver.chrome.options import Options
import os
import time

def solve_captcha_and_scrape():
    # Caminho para a pasta da extensão CapSolver
    extension_path = os.path.abspath('capsolver_extension')

    # Configurar opções do Chrome
    options = Options()
    options.add_argument(f"--load-extension={extension_path}")
    options.add_argument("--disable-gpu")
    options.add_argument("--no-sandbox")

    # Inicializar Botright com opções personalizadas
    with Botright(options=options) as bot:
        bot.get("https://www.google.com/recaptcha/api2/demo")

        # Esperar que o CAPTCHA seja resolvido pelo CapSolver
        print("A aguardar que o CAPTCHA seja resolvido...")
        # Ajustar o tempo de espera com base no tempo médio de resolução
        time.sleep(15)

        # Verificar se o CAPTCHA foi resolvido verificando o conteúdo da página
        if "Verification Success" in bot.page_source:
            print("CAPTCHA resolvido com sucesso!")
        else:
            print("CAPTCHA ainda não resolvido ou falhou.")

if __name__ == "__main__":
    solve_captcha_and_scrape()

Explicação:

  • Configurar opções do Chrome:
    • Incluir a extensão CapSolver na sessão do navegador.
  • Inicializar Botright com opções:
    • Passar as options ao criar a instância Botright.
  • Navegar para o site de destino:
    • Usar bot.get() para navegar para o site com um reCAPTCHA.
  • Esperar que o CAPTCHA seja resolvido:
    • A extensão CapSolver resolverá automaticamente o CAPTCHA.
    • Usar time.sleep() para esperar; ajustar o tempo conforme necessário.
  • Verificar a resolução do CAPTCHA:
    • Verificar o conteúdo da página para confirmar se o CAPTCHA foi resolvido.

Notas importantes:

  • Caminho da extensão:
    • Certifique-se de que extension_path aponta corretamente para a sua pasta da extensão CapSolver.
  • Tempo de espera:
    • O tempo de resolução pode variar; ajustar time.sleep() conforme necessário.
  • Gestão do driver:
    • Botright gere o WebDriver internamente; passar options personaliza o driver.
  • Conformidade:
    • Certifique-se de que cumpre os termos de serviço do website que está a raspar.

Executar o script:

bash Copy
python scrape_with_capsolver_extension.py

Código bónus

Reclame o seu Código bónus para as melhores soluções de captcha em CapSolver: scrape. Após o resgatar, receberá um bónus extra de 5% após cada recarga, ilimitado.

Conclusão

Ao integrar CapSolver com Botright usando a extensão do navegador CapSolver, pode automatizar a resolução de CAPTCHA nos seus projetos de scraping web. Isto garante a extração de dados ininterrupta, mesmo de sites protegidos por CAPTCHAs.

Pontos principais:

  • Botright simplifica a automação web com interações semelhantes à humana.
  • A extensão do navegador CapSolver pode ser integrada em scripts Botright.
  • A configuração correta da extensão e das opções do navegador é crucial.

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