En este tutorial aprenderás:
- Qué es Botright y cómo funciona
- Cómo utilizarlo para el web scraping
- Guía paso a paso para resolver CAPTCHAs con Botright
- Alternativas a Botright para la resolución de CAPTCHA en flujos de trabajo de scraping
- Limitaciones de esta biblioteca y cómo superarlas
Sumerjámonos.
¿Qué es Botright?
Botright es un framework de scraping web en Python de código abierto para automatizar las interacciones del navegador y extraer datos de sitios web. Aprovecha la automatización del navegador y las técnicas de ocultación para imitar el comportamiento real del usuario. Esto lo hace eficaz para el raspado de sitios web dinámicos y protegidos por sistemas anti-bot como Cloudflare.
Se basa en Playwright y utiliza modelos de aprendizaje automático para ayudarle a evitar los CAPTCHA. Para lograr su objetivo de detener a los robots, los CAPTCHA están diseñados para que sean fáciles de resolver para los humanos, pero difíciles para los scripts automatizados. Aun así, algunos modelos de aprendizaje automático son lo suficientemente potentes como para burlarlos.
👍 Pros:
- Evasión de la detección anti-bot: Botright está diseñado específicamente para eludir los sistemas anti-bot. Lo consigue mediante funciones como el cambio de las huellas dactilares del navegador, el uso de motores de navegador reales o modificados y la simulación de interacciones similares a las humanas.
- Solución CAPTCHA integrada: Proporciona capacidades de aprendizaje automático integradas para resolver CAPTCHAs comunes.
- Maneja contenidos dinámicos: Como herramienta de automatización del navegador, gestiona los sitios web con mucho JavaScript y la carga de contenidos dinámicos.
👎 Cons:
- Muchas dependencias: Para exponer sus funciones de resolución de CAPTCHA, se basa en algunas bibliotecas matemáticas, de aprendizaje automático y de interacción avanzada. Esto puede hacer que el tamaño total de la instalación alcance unos cuantos GB.
- Evolución del panorama anti-bot: La eficacia de cualquier biblioteca antidetección puede disminuir con el tiempo a medida que los sitios web actualizan sus técnicas de detección de bots y CAPTCHAs.
- No se mantiene: La biblioteca no se actualiza con frecuencia y requiere una versión antigua de Python junto con algunos ajustes manuales para que funcione.
Cómo utilizar Botright para el Web Scraping
Recuerde que Botright está construido sobre Playwright. Por lo tanto, después de inicializarlo, puede utilizar la API para web scraping expuesta por vanilla Playwright:
import asyncio
import botright
async def main():
# Create a Botright browser instance
botright_client = await botright.Botright()
browser = await botright_client.new_browser()
# Create a new page instance
page = await browser.new_page()
# Visit the target page
await page.goto("https://example.com")
# Scraping logic with the Playwright API...
# Close the botright browser instance
await botright_client.close()
# Execute the scraper function
if __name__ == "__main__":
asyncio.run(main())
Tenga en cuenta que Botright sólo está disponible en modo asíncrono, por lo que debe utilizarlo a través de asyncio
.
Tras la inicialización del navegador en Botwright, puede utilizar la API de Playwright para el web scraping.
Cómo resolver CAPTCHAs con Botright: Guía paso a paso
El verdadero superpoder de Botright es la capacidad de resolver CAPTCHAs. Según la página oficial de GitHub, estos son los CAPTCHA que puede resolver:
Tipo de captcha | Resuelto por | Tasa de éxito |
---|---|---|
hCaptcha | hcaptcha-challenger |
Hasta el 90 |
reCaptcha | reCognizer |
Del 50% al 80%. |
v3 Modo Inteligente | El sigilo de Botright | 100% |
v3 Slider Captcha | cv2.matchTemplate |
100% |
v3 Nueve Captcha | Detección CLIP | 50% |
v3 Icono Captcha | cv2.matchTemplate / SSIM / CLIP |
70% |
v4 Modo Inteligente | El sigilo de Botright | 100% |
v4 Slider Captcha | cv2.matchTemplate |
100% |
v4 GoBang Captcha | Cálculos matemáticos | 100% |
v4 Icono Captcha | cv2.matchTemplate / SSIM / CLIP |
60% |
v4 IconCrush Captcha | Cálculos matemáticos | 100% |
En esta sección guiada, verá cómo resolver un reCAPTCHA de Google con Botright. ¡Siga los pasos que se indican a continuación para lograr el objetivo!
Requisitos
Para reproducir este tutorial, debe cumplir los siguientes requisitos previos:
- Python 3.10.11 instalado.
- La última versión de
pip
.
Nota: Las versiones más recientes de Python no funcionarán con Botright. Por lo tanto, debe tener instalada en su máquina la versión 3.10.11 o inferior.
Paso nº 1: Configuración del proyecto e instalación de Botright
Al final de esta sección, el botright_project/
que representa la carpeta de su proyecto contendrá:
botright_project/
├── scaper.py
└── venv/
Dónde:
scraper.py
es el archivo Python con la lógica de resolución de CAPTCHA de Botright.venv/
es el entorno virtual de Python 3.10.
En Windows, puede crear el directorio de entorno virtual de Python 3.10 venv/
de la siguiente manera:
py -3.10 -m venv venv
Para activarlo, ejecútalo:
venvScriptsactivate
Equivalentemente, en Linux, ejecute:
python3.10 -m venv venv
Luego, actívalo con:
source venv/bin/activate
En el entorno virtual activado, actualice pip
a la última versión:
python -m pip install --upgrade pip
A continuación, instale Botright con:
pip install botright --use-pep517
pip install hcaptcha_challenger==="0.10.1.post2"
Notas:
--use-pep517
es obligatorio para asegurarse de que todas las dependencias heredadas que dependen de un archivopyproject.toml
se instalarán correctamente.hcaptcha_challenger
ha evolucionado mucho desde que se publico la ultima version de Botright. En concreto, la última versión dehcaptcha_challenger
ya no expone los métodos a los que Botright llama entre bastidores. Por lo tanto, debe instalar una versión específica para que la biblioteca funcione.
¡Genial! Su entorno está preparado para resolver CAPTCHAs con Botright.
Paso 2: Definir la lógica para la resolución de CAPTCHAs
Para resolver CAPTCHAs con Botright, escriba el siguiente código en el archivo scraper.py
:
import asyncio
import botright
async def scraper():
# Start the Botright instance
botright_client = await botright.Botright(headless=True)
browser = await botright_client.new_browser()
# Create a new page instance
page = await browser.new_page()
# Open the target web page with the reCAPTCHA demo
await page.goto("https://www.google.com/recaptcha/api2/demo")
# Solve the CAPTCHA
await page.solve_recaptcha()
# Screenshot the page to capture the solved CAPTCHA
await page.screenshot(path="screenshot.png")
# Close the botright browser instance
await botright_client.close()
# Execute the scraper function
if __name__ == "_main_":
asyncio.run(scraper())
El código anterior:
- Utiliza el método
new_browser()
para iniciar una instancia del navegador Botright en modo headless, que es una versión especial de Chromium pero optimizada para el sigilo. - Crea una nueva instancia de página y abre en ella la página de demostración de reCAPTCHA.
- Resuelve el CAPTCHA con el método
solve_recaptcha()
. - Hace una captura de pantalla del CAPTCHA resuelto y cierra la instancia del navegador.
Nota: Lea la sección “Resolución de CAP TCHAs “ en la documentación para conocer los métodos necesarios para resolver los otros tipos de CAPTCHAs.
Perfecto. Has escrito la lógica para resolver un reCAPTCHA con Botright.
Paso 3: Ejecutar el código
Ejecuta el código conbash python scraper.py
Esto es lo que verás al ejecutar el script en modo encabezado(headless=False
):
El screenshot.png
producido por el script Botright contendrá:
Finalmente, el script debería detectar todas las imágenes y resolver los CAPTCHAs automáticamente. Sin embargo, como la precisión no está garantizada al 100%, puede fallar ocasionalmente. En tales casos, simplemente siga ejecutando el script hasta que tenga éxito. En producción, debe implementar una lógica de reintento automático.
Como puede ver, Botright combina modelos de aprendizaje automático con herramientas automatizadas de integración humana para:
- Entender lo que pregunta el CAPTCHA
- Detectar las imágenes que cumplen los criterios requeridos
- Haz clic en esas imágenes como lo haría un humano
Misión cumplida.
Alternativas a Botright para resolver CAPTCHAs
Los CAPTCHA son eficaces incluso contra la mayoría de los robots. Aunque pueden perturbar la experiencia de los usuarios normales, los CAPTCHA modernos siguen siendo una de las principales defensas contra los scrapers y crawlers de IA. Por eso son cada vez más populares, ya que la mayoría de los sitios web quieren proteger sus páginas y datos de la creciente tendencia de los bots de IA.
Ahora bien, Botright no es la única herramienta capaz de resolver CAPTCHAs. Si necesita evitar CAPTCHA durante el scraping, considere las siguientes bibliotecas y enfoques alternativos:
- Cómo evitar los CAPTCHA con Puppeteer
- Cómo evitar CAPTCHAs con Selenium en Python
- Cómo evitar los CAPTCHA con Playwright
- Guía de Web Scraping con SeleniumBase en 2025
- Cómo utilizar ChromeDriver no detectado para Web Scraping
- Los 5 mejores proxies CAPTCHA de 2025
Limitaciones del uso de Botright en el Web Scraping
Botright es una herramienta bastante eficaz para resolver CAPTCHA en el web scraping, pero dista mucho de ser perfecta. Utiliza métodos basados en el aprendizaje automático que no siempre producen resultados coherentes. Además, está algo anticuada y no se mantiene con frecuencia.
Se trata de un problema importante, sobre todo si se tiene en cuenta que los CAPTCHA modernos son cada vez más complejos. Como resultado, los modelos de aprendizaje automático que hay detrás de Botright necesitarían actualizaciones periódicas para mantenerse al día.
En resumen, no espere que Botright resuelva los CAPTCHA modernos. Esto es especialmente cierto cuando se enfrenta a nuevos CAPTCHA basados en rompecabezas como los que proporciona hCaptcha:
Como se muestra en el resultado del vídeo anterior (grabado a velocidad 3x), Botright no es especialmente rápido. La razón es que consume muchos recursos computacionales para analizar cada nueva imagen presentada por reCAPTCHA y determinar la correcta para hacer clic. En situaciones reales, Botright puede tardar hasta 15 segundos en resolver un reCAPTCHA. Esto es demasiado tiempo para operaciones de scraping a gran escala.
Además, Botright también se basa en Playwright, lo que conlleva todas las limitaciones típicas de las herramientas de automatización de navegadores. Entre ellas, problemas con la huella digital del navegador en modo headless y un elevado consumo de recursos.
Para una resolución de CAPTCHA más rápida y coherente en flujos de trabajo de scraping basados en la automatización del navegador, una mejor opción es utilizar un navegador basado en la nube optimizado para el scraping web. La solución es Scraping Browser.
Scraping Browser es un navegador de raspado en la nube que ofrece funciones integradas de desvío anti-bot, rotación automática de IP, protección de huellas digitales del navegador, mecanismos de reintento y, por supuesto, resolución de CAPTCHA.
En particular, la solución puede manejar una amplia gama de CAPTCHAs, incluyendo reCAPTCHA, hCaptcha, px_captcha, SimpleCaptcha, GeeTest CAPTCHA, FunCaptcha, Cloudflare Turnstile, AWS WAF Captcha, KeyCAPTCHA, y muchos otros.
Conclusión
En este artículo, ha aprendido cómo Botright aprovecha la automatización del navegador y el aprendizaje automático para resolver CAPTCHAs con fines de web scraping. Aunque ofrece algunas funciones anti-bot flexibles, Botright adolece de un rendimiento lento, un elevado consumo de recursos, dependencias obsoletas y resultados incoherentes.
Para las empresas y equipos que necesitan una solución más rápida y sencilla para superar CAPTCHAs a escala, Bright Data ofrece varios productos avanzados que van mucho más allá del enfoque de código abierto de Botright:
- Solucionador CAPTCHA: Un solucionador de nivel empresarial que admite una amplia gama de tipos de CAPTCHA (incluidos reCAPTCHA, hCaptcha, Cloudflare y más) y ofrece altas tasas de éxito sin dependencias locales pesadas.
- Navegador descraping: Un navegador basado en la nube diseñado específicamente para el scraping, con rotación automática de IP, protecciones anti-bot integradas y resolución de CAPTCHA sin problemas, todo ello gestionado en la nube para una mayor eficiencia y fiabilidad.
- Desbloqueador Web: Un motor de desbloqueo de última generación diseñado para manejar los desafíos anti-bot y anti-CAPTCHA más difíciles, eligiendo automáticamente el mejor enfoque para cada solicitud de sitio con cero intervención manual.
- Servicios de proxy: Acceso al mayor grupo de proxies del mundo (residenciales, de centros de datos y móviles) para eludir las restricciones geográficas y aumentar el anonimato, algo esencial para proyectos de scraping de gran volumen o distribuidos.
- API de raspado: Herramientas para extraer datos web estructurados a gran escala, con antibloqueo y resolución de CAPTCHA integrados en cada solicitud, además de paneles de gestión intuitivos.
Con Bright Data, puede raspar sitios web de cualquier complejidad, ahorrar recursos de ingeniería y garantizar el cumplimiento de las mejores prácticas del sector. ¡Comience su prueba gratuita ahora!