
Lucas Mitchell
Automation Engineer

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!
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.
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.
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:
pip install botright
Instalar o WebDriver Manager:
Botright confia no pacote webdriver_manager para gerir drivers de navegador.
pip install webdriver-manager
Verificar a instalação:
Crie um novo ficheiro Python e importe Botright para garantir que está instalado corretamente.
from botright import Botright
Se não houver erros, Botright está instalado corretamente.
Vamos criar scripts simples para raspar dados de quotes.toscrape.com usando Botright.
Script: scrape_quotes.py
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:
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:
Botright como um gestor de contexto para garantir a configuração e desmontagem corretas.bot.get().Script: scrape_quotes_pagination.py
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:
find_elements_by_css_selector para localizar elementos.Script: scrape_dynamic_content.py
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:
time.sleep().Script: scrape_with_login.py
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:
Nota: Como quotes.toscrape.com permite qualquer nome de utilizador e palavra-passe para demonstração, podemos usar credenciais fictícias.
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-chrome-extension-v0.2.3.zip../capsolver_extension.Localizar config.json:
capsolver_extension/assets/config.jsonEditar config.json:
{
"apiKey": "YOUR_CAPSOLVER_API_KEY",
"enabledForcaptcha": true,
"captchaMode": "token",
"enabledForRecaptchaV2": true,
"reCaptchaV2Mode": "token",
"solveInvisibleRecaptcha": true,
"verbose": false
}
"YOUR_CAPSOLVER_API_KEY" pela sua chave API CapSolver real.enabledForcaptcha e/ou enabledForRecaptchaV2 para true com base nos tipos de CAPTCHA que espera."token" para resolução automática.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:
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:
Options:
selenium.webdriver.chrome.options, para definir opções do Chrome.options.add_argument() para adicionar a extensão CapSolver.options para Botright ao criar uma instância.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
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:
options ao criar a instância Botright.bot.get() para navegar para o site com um reCAPTCHA.time.sleep() para esperar; ajustar o tempo conforme necessário.Notas importantes:
extension_path aponta corretamente para a sua pasta da extensão CapSolver.time.sleep() conforme necessário.options personaliza o driver.Executar o script:
python scrape_with_capsolver_extension.py
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.

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

Aprenda como usar o modelo CapSolver n8n para monitorar páginas de produtos protegidas pelo AWS WAF, resolver desafios, extrair preços, comparar mudanças e disparar alertas automaticamente.
