Volver al blog

¿Cómo rastrear tareas con interacción humano-computadora?

Michael Lee
Michael Lee

Expert Network Defense Engineer

27-May-2025

El navegador de raspado sin residuos ahora soporta completamente tareas de automatización a través de flujos de trabajo basados en sesión. Ya sea iniciado a través del Playground o API, todas las ejecuciones de programas se pueden rastrear sincrónicamente en el panel de control.

  • Abre la vista en vivo para monitorear el estado de ejecución en tiempo real.
  • Comparte la URL en vivo para interacción remota del usuario, como páginas de inicio de sesión, llenado de formularios o finalización de pagos.
  • Revisa todo el proceso de ejecución con la repetición de sesión.

Pero podrías preguntarte:

¿Qué son exactamente estas funciones de sesión? ¿Cómo me benefician? ¿Y cómo las uso?

En este blog, exploraremos en profundidad la sesión del navegador de raspado sin residuos, cubriendo:

  • El concepto y propósito de Vista en Vivo
  • Qué es la URL en Vivo
  • Cómo usar la URL en Vivo para la interacción directa del usuario
  • Por qué la Repetición de Sesión es esencial

Vista en Vivo: Monitoreo de Programa en Tiempo Real

La función de Vista en Vivo en el navegador de raspado sin residuos permite rastrear y controlar sesiones del navegador en tiempo real. Específicamente, te permite observar clics, entradas y todas las acciones del navegador, monitorear flujos de trabajo de automatización, depurar scripts manualmente y tomar control directo de la sesión si es necesario.

Primero, necesitas crear una sesión. Hay dos formas de hacerlo:

Método 1: Crear una sesión a través del Playground

Crear una sesión a través del Playground

Método 2: Crear una sesión a través de API

También puedes crear una sesión usando nuestra API. Consulta la documentación de la API: Documentación de API del Navegador de Raspado. Nuestra función de sesión te ayudará a gestionar tu sesión, incluidas las capacidades de visualización en tiempo real.

JavaScript Copy
const puppeteer =require('puppeteer-core');
 
const token = 'Clave API'
 
// huella digital personalizada
const fingerprint = {
    platform: 'Windows',
}
 
const query = new URLSearchParams({
    session_ttl: 180,
    session_name: 'prueba_raspado', // nombre de la sesión
    proxy_country: 'CUALQUIERA',
    token: token,
    fingerprint: encodeURIComponent(JSON.stringify(fingerprint)),
});
 
const connectionURL = `wss://browser.scrapeless.com/browser?${query.toString()}`;
 
(async () => {
    const browser = await puppeteer.connect({browserWSEndpoint: connectionURL});
    const page = await browser.newPage();
 
    await page.goto('https://www.scrapeless.com');
    await new Promise(res => setTimeout(res, 3000));
 
    await page.goto('https://www.google.com');
    await new Promise(res => setTimeout(res, 3000));
 
    await page.goto('https://www.youtube.com');
    await new Promise(res => setTimeout(res, 3000));
 
    await browser.close();
})();

Ver Sesiones en Vivo

En la interfaz de gestión de sesiones de Scrapeless, puedes ver fácilmente sesiones en vivo:

Método 1: Ver Sesiones en Vivo Directamente en el Panel de Control

Después de crear una sesión en el Playground, verás la sesión en vivo en ejecución en el lado derecho.

sesión en vivo

O puedes verificar el estado de la sesión en la página de Sesiones en Vivo:

Sesiones en Vivo

Método 2: Ver la Sesión a través de la URL en Vivo

Una URL en Vivo se genera para una sesión en ejecución, permitiéndote ver el proceso en vivo en un navegador.

Las URL en Vivo son útiles para:

  • Depuración y Monitoreo: Observa todo en tiempo real o compártelo con compañeros de equipo.
  • Interacción Humana: Controla o ingresa directamente, permitiendo que el usuario ingrese información sensible como contraseñas de manera segura.

Puedes copiar la URL en Vivo haciendo clic en el icono "🔗" en la página de Sesiones en Vivo. Tanto las sesiones creadas en el Playground como las creadas a través de la API admiten la URL en Vivo.

  1. Obtener la URL en Vivo desde el Panel de Control

Consulta nuestro tutorial a continuación:

URL en Vivo
  1. Obtener la URL en Vivo a través de la API

También puedes recuperar la URL en Vivo a través de llamadas a la API. El siguiente código de ejemplo obtiene todas las sesiones en ejecución a través de la API de sesión y luego utiliza la API de URL en Vivo para recuperar la vista en vivo para una sesión específica:

Python Copy
import requests
 
API_CONFIG = {
    "host": "https://api.scrapeless.com",
    "headers": {
        "x-api-token": "Clave API",
        "Content-Type": "application/json"
    }
}
 
 
async def fetch_live_url(task_id):
    try:
        live_response = requests.get(f"{API_CONFIG['host']}/browser/{task_id}/live", headers=API_CONFIG["headers"])
 
        if not live_response.ok:
            raise Exception(f"falló al obtener la URL en vivo: {live_response.status_code} {live_response.reason}")
 
        live_result = live_response.json()
        if live_result and live_result.get("data"):
            print(f"taskId: {task_id}")
            print(f"liveUrl: {live_result['data']}")
        else:
print("no hay datos de url en vivo disponibles para esta tarea")
    except Exception as error:
        print(f"error al obtener la url en vivo para la tarea {task_id}: {str(error)}")
 
 
async def fetch_browser_sessions():
    try:
        session_response = requests.get(f"{API_CONFIG['host']}/browser/running", headers=API_CONFIG["headers"])
 
        if not session_response.ok:
            raise Exception(f"error al obtener sesiones: {session_response.status_code} {session_response.reason}")
 
        session_result = session_response.json()
 
        sessions = session_result.get("data")
        if not sessions or not isinstance(sessions, list) or len(sessions) == 0:
            print("no se encontraron sesiones de navegador activas")
            return
 
        task_id = sessions[0].get("taskId")
        if not task_id:
            print("id de tarea no encontrado en los datos de la sesión")
            return
 
        await fetch_live_url(task_id)
    except Exception as error:
        print(f"error al obtener sesiones de navegador: {str(error)}")
 
 
import asyncio
 
asyncio.run(fetch_browser_sessions())

3. **Obtén la URL en vivo a través del comando CDP**

Para obtener la URL en vivo mientras se ejecuta el código, utiliza el comando CDP [`Agent.liveURL`](https://apidocs.scrapeless.com/doc-801748#6):

```Python
import asyncio
 
from pyppeteer import launcher
 
 
async def main():
    try:
        browser = await launcher.connect(
            browserWSEndpoint="wss://browser.scrapeless.com/browser?token=APIKey&session_ttl=180&proxy_country=ANY"
        )
        page = await browser.newPage()
        await page.goto('https://www.scrapeless.com')
 
        client = await page.target.createCDPSession()
        result = await client.send('Agent.liveURL')
        print(result)
    except Exception as e:
        print(e)
 
 
asyncio.run(main())

Un aspecto digno de mención:

La URL en vivo no solo permite la monitorización en tiempo real, sino también la interacción humano-máquina.

Por ejemplo: Necesitas que el usuario ingrese su contraseña de inicio de sesión.

“¡Oh no! ¿Estás tratando de robar mi información privada? ¡De ninguna manera!”

En realidad, el usuario puede ingresar los datos por sí mismo en la pantalla — y todo permanece 100% privado. Este método directo pero seguro es lo que habilita la URL en vivo — la interacción remota.

URL en Vivo: Cómo Habilita la Colaboración y la Interacción del Usuario

Tomemos el registro e inicio de sesión en Scrapeless como ejemplo y recorramos cómo interactuar directamente con los usuarios.

Aquí tienes el código que necesitarás:

JavaScript Copy
const puppeteer = require("puppeteer-core");

(async () => {
    const fingerprint = {
        // huella digital de la pantalla personalizada
        screen: {
            width: 1920,
            height: 1080,
        },
        args: {
            // establece el tamaño de la ventana con el mismo valor que la huella digital de la pantalla
            "--window-size": "1920,1080",
        },
    };

    const query = new URLSearchParams({
        token: "APIKey",
        session_ttl: 600,
        proxy_country: "ANY",
        fingerprint: encodeURIComponent(JSON.stringify(fingerprint)),
    });
    const browserWsEndpoint = `wss://browser.scrapeless.com/browser?${query.toString()}`;

    try {
        const browser = await puppeteer.connect({
            browserWSEndpoint: browserWsEndpoint,
        });

        const page = await browser.newPage();
        await page.setViewport(null);

        await page.goto(`https://app.scrapeless.com/passport/register`, {
            timeout: 120000,
            waitUntil: "domcontentloaded",
        });

        const client = await page.createCDPSession();
        const result = await client.send("Agent.liveURL");

        // puedes compartir la url en vivo con cualquier usuario
        console.log(`${result.liveURL}`);

        // espera 5 minutos para el registro del usuario
        await page.waitForSelector("#none-existing-selector", {timeout: 300_000});
    } catch (e) {
        console.log(e);
    }
})()

Ejecuta lo anterior y comparte la URL en vivo con el usuario, como: URL de Registro de Scrapeless.

Todos los pasos anteriores, como:

  • Navegando por el sitio web
  • Visitando la página de inicio de Scrapeless
  • Haciendo clic en iniciar sesión e ingresando a la página de registro

Todo esto se puede hacer directamente creando una sesión utilizando el código anterior. El paso más crítico es que el usuario necesita ingresar su correo electrónico y contraseña para completar el registro.

Después de que compartas la URL en vivo con el usuario, puedes rastrear de manera remota el proceso de ejecución del programa. El programa se ejecutará automáticamente y saltará hasta la página que requiere interacción del usuario. La contraseña ingresada por la otra parte estará completamente oculta, y el usuario no necesita preocuparse por la filtración de contraseñas.

Para reflejar de manera más intuitiva el proceso de operación del usuario, por favor consulta los siguientes pasos de interacción:

El siguiente proceso interactivo se ejecuta completamente en la URL en vivo

Repetición de Sesión: Reproduce la Ejecución del Programa para Depurar Todo

La Repetición de Sesión es una recreación tipo video de una sesión de usuario construida utilizando la Biblioteca de Grabación. Las repeticiones se crean a partir de instantáneas del estado del DOM de la aplicación web (la representación HTML en la memoria del navegador). Cuando reproduces cada instantánea, verás un registro de las acciones realizadas durante toda la sesión: incluidos todos los cargados de página, actualizaciones y navegaciones que ocurrieron durante tu visita al sitio web.

La Repetición de Sesión puede ayudarte a resolver todos los aspectos del funcionamiento de tu programa. Todas las operaciones de página serán grabadas y guardadas como un video. Si encuentras algún problema durante la sesión, puedes solucionar y ajustar a través de la repetición.

  • Ve a Sesiones

  • Haz clic en Historial de Sesiones

  • Localiza la sesión

  • En los detalles de la sesión, haz clic en el botón Reproducir para ver y revisar la ejecución:

Lo Esencial

El Navegador de Scraping de Scrapeless te permite monitorear en tiempo real, interactuar de forma remota y reproducir cada paso.

  • Vista en Vivo: Observa la actividad del navegador como un streaming en vivo. ¡Ve cada clic y entrada!
  • URL en Vivo: Genera un enlace compartible donde los usuarios pueden ingresar sus datos directamente. Totalmente privado, completamente seguro.
  • Repetición de Sesión: Depura como un profesional reproduciendo exactamente lo que pasó — no necesitas volver a ejecutar el programa.

Ya seas un desarrollador depurando, un PM presentando, o un soporte al cliente guiando a un usuario — las Sesiones de Scrapeless te respaldan.

Es hora de hacer la automatización inteligente y amigable para los humanos.

¡Comienza tu prueba gratuita ahora!

En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.

Artículos más populares

Catalogar