🎁 Descuento sorpresa: ¡Disfrute del 90 % de descuento en su suscripción!

  • Precios
  • Documentación
ES
Contacto

© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED

Producto

Navegador antihuellas
Nstbrowser RPA
Omisión de Cloudflare
Browserless
Desbloqueador web

Solución

Navegador antihuellas basado en la nube
Gestión de múltiples cuentas
Raspado web
Detección anti-bots

Recurso

Precios
Descargar
Mercado de RPA
programa de afiliación
Socios
Blog
Notas de lanzamiento

Apoyo

Contacto

Documentación

Legal

Términos
política de privacidad
Política de cookies

ProductoSoluciónRecursoApoyoLegal

ProductoSoluciónRecurso

ApoyoLegal

© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED

Volver a Blog
Usa el docker de Nstbrowser para likes automáticos de TikTok
Headless Browser

Cómo usar Nstbrowser docker para hacer clic automático en "me gusta" de TikTok

Este tutorial demuestra cómo usar Nstbrowser docker para hacer clic automático en "me gusta" de TikTok.
Jan 08, 2025Carlos Rivera

¡Tenemos una increíble Oferta de suscripción con 90% de descuento solo para ti!

Ahora, puedes disfrutar de los siguientes precios imbatibles:

  • Plan Profesional: Solo **29.9/mes** (precio original 299)
  • Plan Enterprise: Solo **59.9/mes** (precio original 599)

Además, ¡seguirás disfrutando de estos descuentos con la renovación automática! No se necesitan pasos adicionales; tu descuento se aplicará automáticamente en la renovación.

¡Obtén tu descuento especial ahora!

Requisitos previos

Antes de comenzar el tutorial, primero entendamos qué son Nstbrowser y Nstbrowser docker.

Nstbrowser es un potente navegador de huellas digitales que proporciona un entorno de navegador real para la cuenta de cada usuario. Cada navegador está aislado de los demás y puede lograr la simulación de entornos multiplataforma. Basado en la tecnología de navegador de huellas digitales, puede eludir fácilmente el seguimiento de cuentas y la detección de varios sitios.

Nstbrowser docker es una imagen de docker construida basada en Nstbrowser. Debido a los recursos locales limitados, podemos implementar fácilmente Nstbrowser en servicios en la nube a través de docker. Basándonos en la función de sincronización en la nube, podemos usar directamente Nstbrowser en Nstbrowser docker para crear un entorno de navegador cultivado.

A continuación, demostraremos cómo usar Nstbrowser docker para hacer clic automáticamente en "me gusta" en TikTok (Nota: TikTok tiene un estricto control de prevención de riesgos de cuentas, por favor, intenta no usar cuentas recién creadas)

Paso 1. Crear entorno de perfil

  1. Crea un nuevo perfil y activa la sincronización en la nube y la sincronización de cookies en la configuración del grupo. Configura los parámetros de proxy y huella dactilar según tus necesidades durante la creación del perfil:
Crear entorno de perfil
Crear entorno de perfil
  1. Inicia el perfil e inicia sesión en la cuenta de TikTok que necesitas usar. También puedes usar el script Puppeteer para iniciar sesión en la cuenta:
Iniciar sesión en la cuenta de TikTok
  1. Cierra el perfil con sesión iniciada, puedes ver el estado de carga y Nstbrowser ha sincronizado los datos de tu perfil con la nube.
Cerrar el perfil con sesión iniciada

Paso 2. Preparar el entorno de Nstbrowser Docker

  1. Extraer la imagen de docker de Nstbrowser
Bash Copy
docker pull docker.io/nstbrowser/browserless:latest
  1. Ejecutar el contenedor
Bash Copy
docker run -d -it \
  -e TOKEN="TU CLAVE API" \
  -p 8848:8848 \
  --name nstbrowserless \
  nstbrowser/browserless:latest

Paso 3. Crear el script para hacer clic en "Me gusta"

Aquí usamos puppeteer-core + axios para demostrar

  1. Instalar puppeteer-core y axios:
Bash Copy
# pnpm
pnpm i puppeteer-core axios
# yarn
yarn add puppeteer-core axios
# npm
npm i --save puppeteer-core axios
  1. Iniciar Nstbrowser en docker

Antes de usar puppeteer para conectarse a Nstbrowser, debemos iniciar Nstbrowser primero, iniciar la interfaz: http://localhost:8848/start/{profileId}. Puedes consultar los detalles e parámetros específicos de la interfaz en el sitio web oficial:

javaScript Copy
const baseUrl = 'localhost:8848'
const profileId = 'TU_PROFILEID'

async function startBrowser() {
  const config = {
    "name": "tiktok_star",
    "platform": "windows",
    "kernel": "chrome",
    "kernelMilestone": "130",
    // "proxy": "http://127.0.0.1:8000",   // Puedes usar un proxy personalizado
    // "fingerprint": {                    // configurar parámetros de huella dactilar personalizados
    //     "flags": {
    //         "timezone": "BasedOnIp",
    //         "screen": "Custom"
    //     },
    // },
    // "args": {
    //     "--proxy-bypass-list": "*.nstbrowser.io"  // configurar parámetros de inicio personalizados
    // }
  };

  return axios.post(`http://${baseUrl}/start/${profileId}`, JSON.stringify((config)), { headers: { 'Content-Type': 'application/json' } })
    .then((response) => {
      if (response.data.code === 200) {
        return true
      }
    })
    .catch((error) => {
      console.error(error);
    });
}
  1. Escribir el script de Puppeteer

Navegamos al sitio web de TikTok. Y obtenemos el elemento del cuadro de entrada y el botón Aceptar en la página web a través de la herramienta para desarrolladores (F12):

Escribir el script de Puppeteer
Escribir el script de Puppeteer

Introduce el contenido de usuario que quieres ver:

JavaScript Copy
const page = await browser.newPage();
await page.goto('https://www.tiktok.com/');

await page.waitForSelector('input[type=search]') 

await page.type('input[type=search]', 'WillSmith', { delay: '100' })
  1. Obtener el elemento del primer vídeo y hacer clic en él:
Obtener el elemento del primer vídeo y hacer clic en él
JavaScript Copy
await page.waitForSelector('div.css-1fxbsrz-DivVideoListScrollBar.e10wilco12 > div > div:nth-child(1) a')

await page.click('div.css-1fxbsrz-DivVideoListScrollBar.e10wilco12 > div > div:nth-child(1) a')
  1. Entrar en la página de reproducción del vídeo

A veces, al entrar en la página de reproducción, se utilizará el modo de ventana pequeña de forma predeterminada. Necesitamos restaurar la ventana:

JavaScript Copy
try {
   await page.waitForSelector('button.e12q9uh55.css-1xiq6b1-Button-ButtonReturn.e1v8cfre0', { timeout: 3000 });
   // cerrar PictureInPicture
   await page.click('button.e12q9uh55.css-1xiq6b1-Button-ButtonReturn.e1v8cfre0')

 } catch (e) {
   console.log("no se puede encontrar el botón de cierre")
 }

Espera a que el vídeo se reproduzca durante un rato antes de darle a "me gusta"

Esperar a que se reproduzca el vídeo
JavaScript Copy
// esperar a que el vídeo se reproduzca durante un rato
await new Promise(resolve => setTimeout(resolve, 10000));

// dar un "me gusta"
await page.click('button.css-1mizk9b-ButtonActionItem.e1hk3hf90')

Luego desliza el vídeo al siguiente y repite esta operación:

JavaScript Copy
const boundingBox = await page.$('body video').then(el => el.boundingBox());

for (let i = 0; i < 3; i++) {

     // esperar a que el vídeo se reproduzca durante un rato
     await new Promise(resolve => setTimeout(resolve, 10000));

     // dar un "me gusta"
     await page.click('button.css-1mizk9b-ButtonActionItem.e1hk3hf90')

     // mover el ratón al centro del vídeo
     await page.mouse.move(
       boundingBox.x + boundingBox.width / 2,
       boundingBox.y + boundingBox.height / 2
     );

     // desplazar el vídeo hacia abajo
     await page.mouse.wheel({ deltaY: 100 });
}
  1. El código completo es el siguiente:
JavaScript Copy
import puppeteer from 'puppeteer-core';
import axios from 'axios';

const baseUrl = 'localhost:8848'
const profileId = 'TU_PROFILEID'

async function startBrowser() {
  const config = {
    "name": "tiktok_star",
    "platform": "windows",
    "kernel": "chrome",
    "kernelMilestone": "130",
    // "proxy": "http://127.0.0.1:8000", 
    // "doProxyChecking": false,
    // "fingerprint": {
    //     "flags": {
    //         "timezone": "BasedOnIp",
    //         "screen": "Custom"
    //     },
    // },
    // "args": {
    //     "--proxy-bypass-list": "*.nstbrowser.io"
    // }
  };

  return axios.post(`http://${baseUrl}/start/${profileId}`, JSON.stringify((config)), { headers: { 'Content-Type': 'application/json' } })
    .then((response) => {
      if (response.data.code === 200) {
        return true
      }
    })
    .catch((error) => {
      console.error(error);
    });
}

async function execPuppeteer() {
  try {

    const browser = await puppeteer.connect({
      browserWSEndpoint: `ws://${baseUrl}/connect/${profileId}`
    });

    const page = await browser.newPage();
    await page.goto('https://www.tiktok.com/');

    await page.waitForSelector('input[type=search]')

    await page.type('input[type=search]', 'WillSmith', { delay: '100' })

    await page.click('button[data-e2e=search-box-button]')

    await page.waitForSelector('div.css-1fxbsrz-DivVideoListScrollBar.e10wilco12 > div > div:nth-child(1) a')
    //   div.css-1fxbsrz-DivVideoListScrollBar.e10wilco12
    await page.click('div.css-1fxbsrz-DivVideoListScrollBar.e10wilco12 > div > div:nth-child(1) a')

    try {
      await page.waitForSelector('button.e12q9uh55.css-1xiq6b1-Button-ButtonReturn.e1v8cfre0', { timeout: 3000 });
      // cerrar PictureInPicture
      await page.click('button.e12q9uh55.css-1xiq6b1-Button-ButtonReturn.e1v8cfre0')

    } catch (e) {
      console.log("no se puede encontrar el botón de cierre")
    }

    await page.waitForSelector('button[data-e2e=arrow-right]')

    await page.click('button[data-e2e=arrow-right]')

    // obtener el cuadro delimitador del vídeo
    const boundingBox = await page.$('body video').then(el => el.boundingBox());

    for (let i = 0; i < 3; i++) {

      // esperar a que el vídeo se reproduzca durante un rato
      await new Promise(resolve => setTimeout(resolve, 10000));

      // dar un "me gusta"
      await page.click('button.css-1mizk9b-ButtonActionItem.e1hk3hf90')

      // mover el ratón al centro del vídeo
      await page.mouse.move(
        boundingBox.x + boundingBox.width / 2,
        boundingBox.y + boundingBox.height / 2
      );

      // desplazar el vídeo hacia abajo
      await page.mouse.wheel({ deltaY: 100 });
    }

    await browser.close()
  } catch (e) {
    console.error(e)
  }
}

(async () => {
  const ok = await startBrowser()
  if (ok) {
    await execPuppeteer()
  }
})();

Para concluir

La función de sincronización en la nube de Nstbrowser puede crear un perfil en cualquier dispositivo y sincronizar el perfil con otros dispositivos y entornos docker.

La sincronización en la nube puede conservar el contenido y el historial de la página que visitaste por última vez, simplificando en gran medida el coste de operación. Y el mismo entorno de perfil es el mismo en cualquier dispositivo, lo que puede evitar la detección de dispositivos en el sitio. Las cookies de sincronización en la nube pueden sincronizar los datos de cookies del usuario, y el estado de inicio de sesión basado en cookies también se puede sincronizar con el mismo entorno de perfil.

Más
Cómo usar Browserless de Nstbrowser para resolver automáticamente Cloudflare Turnstile (2025)
BrowserlessCloudflare BypassHeadless Browser
Cómo usar Browserless de Nstbrowser para resolver automáticamente Cloudflare Turnstile (2025)
Aprenda a omitir Cloudflare Turnstile usando el servicio Browserless de Nstbrowser y Puppeteer. Esta guía le guiará a través de la configuración, la implementación y las ventajas de automatizar tareas de raspado web garantizando el cumplimiento y la eficiencia.
Mar 07, 2025Robin Brown
Cómo usar Browserless de Nstbrowser para evitar el desafío Cloudflare de 5 segundos (2025)
BrowserlessCloudflare BypassHeadless Browser
Cómo usar Browserless de Nstbrowser para evitar el desafío Cloudflare de 5 segundos (2025)
Aprenda a omitir el desafío de 5 segundos de Cloudflare usando el servicio Browserless de Nstbrowser y Puppeteer. Esta guía le guiará a través de la configuración, la implementación y las ventajas de automatizar tareas de raspado web garantizando el cumplimiento y la eficiencia.
Mar 06, 2025Robin Brown
Usa el docker de Nstbrowser para likes automáticos de TikTok
Headless Browser
Cómo usar Nstbrowser docker para hacer clic automático en "me gusta" de TikTok
Este tutorial demuestra cómo usar Nstbrowser docker para hacer clic automático en "me gusta" de TikTok.
Jan 08, 2025Carlos Rivera
docker-extrae-youtube
Headless Browser
Cómo usar Nstbrowser docker para rastrear videos de YouTube?
Este tutorial usa la imagen Docker Nstbrowser para demostrar cómo rastrear enlaces de videos de YouTube
Jan 08, 2025Carlos Rivera
navegador sin cabeza, browserless
Headless Browser
Prueba de navegador sin cabeza: ¿Qué es y cómo hacerlo?
Las pruebas de navegador sin cabeza son una forma más rápida, confiable y eficiente de probar aplicaciones web en navegadores. Lea este blog y encuentre la guía detallada sobre las pruebas de navegador sin cabeza.
Sep 12, 2024Robin Brown
headlesschrome
Headless Browser
Headless Browser: ¿Cómo ejecutarlo en Puppeteer?
¡El web scraping es fácil con headlesschrome! ¿Qué es un navegador sin cabeza? ¿Por qué Puppeteer es adecuado para el web scraping? Descubra información específica de este tutorial.
Jul 18, 2024Carlos Rivera
Catálogo