Web Scraping com Botright e Python em 2025

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:
-
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.
-
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.
-
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.
-
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.
-
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:
-
Instalar Botright:
bashpip install botright
-
Instalar o WebDriver Manager:
Botright confia no pacote
webdriver_manager
para gerir drivers de navegador.bashpip install webdriver-manager
-
Verificar a instalação:
Crie um novo ficheiro Python e importe Botright para garantir que está instalado corretamente.
pythonfrom 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
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
python scrape_quotes.py
Saída:
“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
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
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
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
-
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
-
Localizar
config.json
:- Caminho:
capsolver_extension/assets/config.json
- Caminho:
-
Editar
config.json
:json{ "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/ouenabledForRecaptchaV2
paratrue
com base nos tipos de CAPTCHA que espera. - Defina o modo para
"token"
para resolução automática.
- Substitua
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
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.
- De
- Configurar opções do Chrome:
- Usar
options.add_argument()
para adicionar a extensão CapSolver.
- Usar
- Inicializar Botright com opções:
- Passar as
options
paraBotright
ao criar uma instância.
- Passar as
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
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ânciaBotright
.
- Passar as
- Navegar para o site de destino:
- Usar
bot.get()
para navegar para o site com um reCAPTCHA.
- Usar
- 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.
- Certifique-se de que
- Tempo de espera:
- O tempo de resolução pode variar; ajustar
time.sleep()
conforme necessário.
- O tempo de resolução pode variar; ajustar
- Gestão do driver:
- Botright gere o WebDriver internamente; passar
options
personaliza o driver.
- Botright gere o WebDriver internamente; passar
- Conformidade:
- Certifique-se de que cumpre os termos de serviço do website que está a raspar.
Executar o script:
bash
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
Aprenda a resolver CAPTCHAs de imagem de forma eficaz com o CapSolver em 2025

Adélia Cruz
23-Jan-2025

Web Scraping é Legal? O Guia Completo para 2025
Desafios Legais do Web Scraping em 2025: Regulamentações-chave, Conformidade e Estudos de Caso

Adélia Cruz
23-Jan-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.

Ethan Collins
23-Jan-2025

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.

Adélia Cruz
23-Jan-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.

Adélia Cruz
23-Jan-2025

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.

Adélia Cruz
23-Jan-2025