CAPSOLVER
Blog
Web Scraping con Botright y Python en 2025

Web Scraping con Botright y Python en 2025

Logo of CapSolver

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:

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

  2. 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é.

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

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

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

  1. Instalar Botright:

    bash Copy
    pip install botright
  2. Instalar el administrador de WebDriver:

    Botright se basa en el paquete webdriver_manager para administrar los controladores de navegador.

    bash Copy
    pip install webdriver-manager
  3. Verificar la instalación:

    Crea un nuevo archivo de Python e importa Botright para asegurarte de que esté instalado correctamente.

    python Copy
    from 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 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()

Ejecutar el script:

bash Copy
python scrape_quotes.py

Salida:

Copy
“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 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 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 Copy
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 Copy
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

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

  1. Localizar config.json:

    • Ruta: 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
    }
    • Reemplace "YOUR_CAPSOLVER_API_KEY" con su clave de API real de CapSolver.
    • Establecer enabledForcaptcha y/o enabledForRecaptchaV2 en true en función de los tipos de CAPTCHA que espera.
    • Establecer el modo en "token" para la resolución automática.

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 Copy
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.
  • Configurar opciones de Chrome:
    • Usar options.add_argument() para agregar la extensión CapSolver.
  • Inicializar Botright con opciones:
    • Pase las opciones a Botright al crear una instancia.

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 Copy
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 instancia Botright.
  • Navegar al sitio de destino:
    • Usar bot.get() para navegar al sitio con un reCAPTCHA.
  • 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.
  • Tiempo de espera:
    • El tiempo de resolución puede variar; ajustar time.sleep() según sea necesario.
  • Gestión de controladores:
    • Botright administra el WebDriver internamente; pasar opciones personaliza el controlador.
  • Cumplimiento:
    • Asegúrese de cumplir con los términos de servicio del sitio web que está raspando.

Ejecutar el script:

bash Copy
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 web scraping? La guía completa para 2025
¿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

Logo of CapSolver

Aloísio Vítor

24-Jan-2025

Los 5 mejores solucionadores de CAPTCHA para el reconocimiento de reCAPTCHA en 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í.

Logo of CapSolver

Rajinder Singh

23-Jan-2025

¿Qué es el reconocimiento reCAPTCHA? Una guía para principiantes
¿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%.

Logo of CapSolver

Rajinder Singh

23-Jan-2025

¿Qué es una clave de sitio reCAPTCHA y cómo encontrarla?
¿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.

Logo of CapSolver

Emma Foster

23-Jan-2025

Cómo eludir el desafío de Cloudflare durante el web scraping en 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.

Logo of CapSolver

Emma Foster

23-Jan-2025

Cómo resolver CAPTCHAs de imagen en el web scraping: Una guía completa para 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

Logo of CapSolver

Aloísio Vítor

23-Jan-2025