Web Scraping con Botright y Python en 2025

Anh Tuan
Data Science Expert
14-Nov-2024

Probablemente te estés preguntando cómo resolver captchas usando BotRight, cómo usarlo para crear un raspador simple o, mejor aún, ¡un raspador avanzado!
Bueno, ¡este es tu tutorial!
Introducción a Botright
Introducción a BotRight
BotRight es una biblioteca avanzada de Python para la automatización web, diseñada específicamente para navegar por las crecientes complejidades de los sistemas de detección de bots en los sitios web. A diferencia de las herramientas de automatización básicas, BotRight va más allá de las interacciones simples al proporcionar controles matizados que hacen que la navegación automatizada parezca muy humana. Este énfasis en la simulación del comportamiento humano es fundamental para acceder a sitios web que normalmente bloquearían o limitarían los bots.
Construido sobre Selenium WebDriver, BotRight ofrece una API de alto nivel que abstrae las complejas interacciones del navegador en comandos simples, lo que permite a los principiantes y usuarios avanzados desarrollar raspadores sofisticados y scripts de automatización sin la necesidad de administrar comandos de navegador de bajo nivel. Esto lo convierte en una excelente opción para proyectos que van desde la simple recopilación de datos hasta tareas web complejas de varios pasos que exigen resistencia a los algoritmos de detección de bots.
¿Por qué elegir BotRight?
BotRight proporciona varias características que lo hacen destacar en el panorama de la automatización:
-
Interacciones similares a las humanas: El diseño de BotRight se centra en simular acciones reales del usuario, como movimientos suaves del mouse, patrones de escritura naturales y retrasos de tiempo. Estos comportamientos reducen el riesgo de detección y brindan un acceso más confiable al contenido que normalmente está restringido a los usuarios genuinos.
-
Persistencia del estado del navegador: Al admitir perfiles de navegador, BotRight le permite mantener el estado de la sesión en múltiples ejecuciones de automatización. Esta característica es particularmente útil para tareas que requieren persistencia de inicio de sesión o donde se deben preservar estados específicos de cookies y caché.
-
Facilidad de uso: A pesar de sus capacidades avanzadas, BotRight es notablemente fácil de usar. Su API está estructurada para optimizar tareas complejas de automatización, eliminando gran parte de la sobrecarga técnica que generalmente viene con las configuraciones de Selenium. Los principiantes pueden comenzar rápidamente, mientras que los expertos pueden aprovechar la flexibilidad de BotRight para construir soluciones altamente personalizadas.
-
Escalabilidad para flujos de trabajo complejos: BotRight se adapta bien a tareas más avanzadas, incluyendo el manejo de sitios con tecnología AJAX, la gestión de la extracción de datos paginados, la resolución de CAPTCHA y más. Junto con solucionadores de CAPTCHA como CapSolver, BotRight puede manejar flujos de trabajo que requieren la omisión de CAPTCHA, lo que le permite automatizar incluso sitios web fuertemente protegidos.
-
Extensiones y complementos integrados: BotRight admite la inclusión de varias extensiones y complementos para mejorar las capacidades de automatización. Por ejemplo, el uso de herramientas como CapSolver dentro de BotRight ayuda a administrar los desafíos de CAPTCHA, desbloqueando una gama más amplia de sitios web para raspar o automatizar.
Configurando Botright
Antes de comenzar, asegúrese de tener Python 3.7 o superior instalado en su sistema. Siga estos pasos para configurar Botright:
-
Instalar Botright:
bashpip install botright
-
Instalar el administrador de WebDriver:
Botright se basa en el paquete
webdriver_manager
para administrar los controladores de navegador.bashpip install webdriver-manager
-
Verificar la instalación:
Crea un nuevo archivo de Python e importa Botright para asegurarte de que esté instalado correctamente.
pythonfrom botright import Botright
Si no se producen errores, Botright está instalado correctamente.
Creando raspadores básicos
Creemos scripts simples para raspar datos de quotes.toscrape.com usando Botright.
Raspar citas
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()
Ejecutar el script:
bash
python scrape_quotes.py
Salida:
“El mundo tal como lo hemos creado es un proceso de nuestro pensamiento. No se puede cambiar sin cambiar nuestro pensamiento.” - Albert Einstein
...
Explicación:
- Usamos
Botright
como administrador de contexto para garantizar una configuración y desmontaje adecuados. - Navegamos al sitio web usando
bot.get()
. - Encontramos todos los elementos de cotización y extraemos el texto y el autor.
Manejando la paginación
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 si hay una página siguiente
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()
Explicación:
- Recorremos las páginas comprobando si el botón "Siguiente" está disponible.
- Usamos
find_elements_by_css_selector
para localizar elementos. - Hacemos clic en el botón "Siguiente" para navegar a la página siguiente.
Raspar contenido 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/")
# Haga clic en el enlace 'Top Ten tags' para cargar las etiquetas dinámicamente
bot.click('a[href="/tag/"]')
# Espere a que se cargue el contenido dinámico
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()
Explicación:
- Navegamos a la página de etiquetas haciendo clic en el enlace.
- Esperamos a que se cargue el contenido dinámico usando
time.sleep()
. - Extraemos e imprimimos las etiquetas.
Enviar formularios e iniciar sesión
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")
# Rellena el formulario de inicio de sesión
bot.type('input#username', 'testuser')
bot.type('input#password', 'testpass')
bot.click("input[type='submit']")
# Verifica el inicio de sesión comprobando un enlace de cierre de sesión
if bot.find_elements_by_css_selector('a[href="/logout"]'):
print("¡Inicio de sesión exitoso!")
# Ahora raspa las citas
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("Error de inicio de sesión.")
if __name__ == "__main__":
login_and_scrape()
Explicación:
- Navegamos a la página de inicio de sesión y completamos las credenciales.
- Verificamos el inicio de sesión comprobando la presencia de un enlace de cierre de sesión.
- Luego procedemos a raspar el contenido disponible para los usuarios que han iniciado sesión.
Nota: Dado que quotes.toscrape.com
permite cualquier nombre de usuario y contraseña para demostración, podemos usar credenciales ficticias.
Integrando CapSolver en Botright
Si bien quotes.toscrape.com no tiene CAPTCHA, muchos sitios web del mundo real sí. Para prepararnos para tales casos, demostraremos cómo integrar CapSolver en nuestro script Botright usando la extensión del navegador CapSolver.
Descargando la extensión CapSolver
-
Descargar la extensión:
- Visite la página CapSolver GitHub Releases.
- Descargue la última versión, por ejemplo,
capsolver-chrome-extension-v0.2.3.zip
. - Descomprímalo en un directorio en la raíz de su proyecto, por ejemplo,
./capsolver_extension
.
Configurando la extensión CapSolver
-
Localizar
config.json
:- Ruta:
capsolver_extension/assets/config.json
- Ruta:
-
Editar
config.json
:json{ "apiKey": "YOUR_CAPSOLVER_API_KEY", "enabledForcaptcha": true, "captchaMode": "token", "enabledForRecaptchaV2": true, "reCaptchaV2Mode": "token", "solveInvisibleRecaptcha": true, "verbose": false }
- Reemplace
"YOUR_CAPSOLVER_API_KEY"
con su clave de API real de CapSolver. - Establecer
enabledForcaptcha
y/oenabledForRecaptchaV2
entrue
en función de los tipos de CAPTCHA que espera. - Establecer el modo en
"token"
para la resolución automática.
- Reemplace
Cargando la extensión CapSolver en Botright
Para usar la extensión CapSolver en Botright, debemos configurar el navegador para que cargue la extensión cuando se inicie.
Nota: Botright le permite personalizar las opciones del navegador, incluida la adición de extensiones.
Script modificado:
python
from botright import Botright
from selenium.webdriver.chrome.options import Options
import os
def create_bot_with_capsolver():
# Ruta a la carpeta de extensión CapSolver
extension_path = os.path.abspath('capsolver_extension')
# Configurar opciones de Chrome
options = Options()
options.add_argument(f"--load-extension={extension_path}")
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
# Inicializar Botright con opciones personalizadas
bot = Botright(options=options)
return bot
Explicación:
- Importar
Options
:- Desde
selenium.webdriver.chrome.options
, para configurar las opciones de Chrome.
- Desde
- Configurar opciones de Chrome:
- Usar
options.add_argument()
para agregar la extensión CapSolver.
- Usar
- Inicializar Botright con opciones:
- Pase las
opciones
aBotright
al crear una instancia.
- Pase las
Ejemplo de script con la integración de CapSolver
Demostraremos la integración navegando a un sitio con un reCAPTCHA, como la demostración de reCAPTCHA de 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():
# Ruta a la carpeta de extensión CapSolver
extension_path = os.path.abspath('capsolver_extension')
# Configurar opciones de Chrome
options = Options()
options.add_argument(f"--load-extension={extension_path}")
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
# Inicializar Botright con opciones personalizadas
with Botright(options=options) as bot:
bot.get("https://www.google.com/recaptcha/api2/demo")
# Espere a que CapSolver resuelva el CAPTCHA
print("Esperando a que se resuelva el CAPTCHA...")
# Ajustar el tiempo de espera en función del tiempo medio de resolución
time.sleep(15)
# Verificar si el CAPTCHA se resolvió comprobando el contenido de la página
if "Verification Success" in bot.page_source:
print("¡CAPTCHA resuelto correctamente!")
else:
print("El CAPTCHA aún no se ha resuelto o ha fallado.")
if __name__ == "__main__":
solve_captcha_and_scrape()
Explicación:
- Configurar opciones de Chrome:
- Incluya la extensión CapSolver en la sesión del navegador.
- Inicializar Botright con opciones:
- Pase las
opciones
al crear la instanciaBotright
.
- Pase las
- Navegar al sitio de destino:
- Usar
bot.get()
para navegar al sitio con un reCAPTCHA.
- Usar
- Esperar a que se resuelva el CAPTCHA:
- La extensión CapSolver resolverá automáticamente el CAPTCHA.
- Usar
time.sleep()
para esperar; ajustar el tiempo según sea necesario.
- Verificar la solución de CAPTCHA:
- Verifique el contenido de la página para confirmar si se resolvió el CAPTCHA.
Notas importantes:
- Ruta de extensión:
- Asegúrate de que
extension_path
apunte correctamente a tu carpeta de extensión CapSolver.
- Asegúrate de que
- Tiempo de espera:
- El tiempo de resolución puede variar; ajustar
time.sleep()
según sea necesario.
- El tiempo de resolución puede variar; ajustar
- Gestión de controladores:
- Botright administra el WebDriver internamente; pasar
opciones
personaliza el controlador.
- Botright administra el WebDriver internamente; pasar
- Cumplimiento:
- Asegúrese de cumplir con los términos de servicio del sitio web que está raspando.
Ejecutar el script:
bash
python scrape_with_capsolver_extension.py
Código adicional
Reclama tu Código de bonificación para las mejores soluciones de captcha en CapSolver: scrape. Después de canjearlo, obtendrás un bono adicional del 5% después de cada recarga, sin límite de veces.

Conclusión
Al integrar CapSolver con Botright usando la extensión del navegador CapSolver, puedes automatizar la resolución de CAPTCHA en tus proyectos de raspado web. Esto asegura la extracción de datos ininterrumpida, incluso de los sitios protegidos por CAPTCHA.
Puntos clave:
- Botright simplifica la automatización web con interacciones similares a las humanas.
- La extensión del navegador CapSolver se puede integrar en scripts Botright.
- La configuración adecuada de la extensión y las opciones del navegador es crucial.
Aviso de Cumplimiento: La información proporcionada en este blog es solo para fines informativos. CapSolver se compromete a cumplir con todas las leyes y regulaciones aplicables. El uso de la red de CapSolver para actividades ilegales, fraudulentas o abusivas está estrictamente prohibido y será investigado. Nuestras soluciones para la resolución de captcha mejoran la experiencia del usuario mientras garantizan un 100% de cumplimiento al ayudar a resolver las dificultades de captcha durante el rastreo de datos públicos. Fomentamos el uso responsable de nuestros servicios. Para obtener más información, visite nuestros Términos de Servicio y Política de Privacidad.
Máse

¿Es legal el scraping web? La guía completa para 2025
Desafíos Legales del Web Scraping en 2025: Regulaciones Clave, Cumplimiento y Estudios de Caso

Aloísio Vítor
24-Jan-2025

Los 5 mejores solucionadores de CAPTCHA para el reconocimiento de reCAPTCHA en 2025
Explora los 5 mejores solucionadores de CAPTCHA de 2025, incluyendo CapSolver impulsado por IA para un rápido reconocimiento de reCAPTCHA. Compara velocidad, precios y precisión aquí.

Rajinder Singh
23-Jan-2025

¿Qué es el Reconocimiento reCAPTCHA? Una guía para principiantes
¿Problemas con las cuadrículas de imágenes de reCAPTCHA? Descubre cómo el reconocimiento con IA de Capsolver resuelve los desafíos de "Seleccionar todo" al instante. Aprende la integración de API, extensiones de navegador y consejos profesionales para automatizar la resolución de CAPTCHA con una precisión superior al 95%.

Rajinder Singh
23-Jan-2025

¿Qué es una clave de sitio reCAPTCHA y cómo encontrarla?
Aprenda a encontrar una clave de sitio reCAPTCHA manualmente o con herramientas como Capsolver. Solucione problemas comunes y automatice la resolución de CAPTCHA para desarrolladores y raspado web.

Emma Foster
23-Jan-2025

Cómo sortear el desafío de Cloudflare durante el web scraping en 2025
Aprenda a omitir el desafío de Cloudflare y Turnstile en 2025 para un raspado web sin problemas. Descubra la integración de Capsolver, consejos sobre huellas dactilares TLS y soluciones para errores comunes para evitar el infierno del CAPTCHA. Ahorre tiempo y escale su extracción de datos.

Emma Foster
23-Jan-2025

Cómo resolver CAPTCHAs de imagen en el web scraping: Una guía completa para 2025
Aprende a resolver CAPTCHAs de imagen eficazmente con CapSolver en 2025

Aloísio Vítor
23-Jan-2025