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

Como Resolver CAPTCHAs de Imagem em Web Scraping: Um Guia Completo para 2025
Como Resolver CAPTCHAs de Imagem em Web Scraping: Um Guia Completo para 2025

Aprenda a resolver CAPTCHAs de imagem de forma eficaz com o CapSolver em 2025

Logo of CapSolver

Adélia Cruz

23-Jan-2025

Raspagem da Web é Legal? O Guia Completo para 2025
Web Scraping é Legal? O Guia Completo para 2025

Desafios Legais do Web Scraping em 2025: Regulamentações-chave, Conformidade e Estudos de Caso

Logo of CapSolver

Adélia Cruz

23-Jan-2025

Top 5 resolvedores de Captcha para reconhecimento de reCAPTCHA em 2025
Top 5 resolvedores de Captcha para reconhecimento de reCAPTCHA em 2025

Explore os 5 principais solucionadores de CAPTCHA de 2025, incluindo o CapSolver baseado em IA para reconhecimento rápido de reCAPTCHA. Compare velocidade, preços e precisão aqui.

Logo of CapSolver

Ethan Collins

23-Jan-2025

O que é uma chave de site reCAPTCHA e como encontrá-la?
O que é uma chave de site reCAPTCHA e como encontrá-la?

Aprenda como encontrar uma chave de site reCAPTCHA manualmente ou com ferramentas como Capsolver. Corrija problemas comuns e automatize a resolução de CAPTCHA para desenvolvedores e web scraping.

Logo of CapSolver

Adélia Cruz

23-Jan-2025

Como contornar o desafio do Cloudflare durante a raspagem da web em 2025
Como contornar o desafio do Cloudflare durante a raspagem da web em 2025

Aprenda a contornar o Cloudflare Challenge e o Turnstile em 2025 para web scraping sem problemas. Descubra a integração do Capsolver, dicas de impressão digital TLS e correções para erros comuns para evitar o inferno do CAPTCHA. Economize tempo e escale sua extração de dados.

Logo of CapSolver

Adélia Cruz

23-Jan-2025

O que é o Reconhecimento reCAPTCHA? Um Guia para Iniciantes
O que é o Reconhecimento reCAPTCHA? Um Guia para Iniciantes

Com dificuldades com grids de imagem do reCAPTCHA? Descubra como o reconhecimento com IA da Capsolver resolve desafios "Selecione todos" instantaneamente. Aprenda integração de API, extensões de navegador e dicas profissionais para automatizar a resolução de CAPTCHA com mais de 95% de precisão.

Logo of CapSolver

Adélia Cruz

23-Jan-2025