Surprise Discount: Наслаждайтесь 90% скидки Ваша подписка!

  • Цены
  • Документация
RU
Контакт

© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED

Продукт

Браузер с защитой от отпечатков пальцев
Nstbrowser RPA
Обход Cloudflare
Browserless
Веб-разблокировщик

Решение

Облачный браузер для защиты от отпечатков пальцев
Управление несколькими аккаунтами
Веб-скрапинг
Обнаружение антиботов

Ресурс

Цены
Скачать
Торговая площадка RPA
Партнерская программа
Партнеры
Блоги
Примечания к выпуску

Поддерживать

Контакт

Документация

Юридический

Условия
политика конфиденциальности
Политика использования файлов cookie

ПродуктРешениеРесурсПоддерживатьЮридический

ПродуктРешениеРесурс

ПоддерживатьЮридический

© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED

Назад к блогу
Используйте Docker-образ Nstbrowser для автоматической постановки лайков на TikTok
Headless Browser

Как использовать Docker-образ Nstbrowser для автоматической постановки лайков на TikTok?

Это руководство демонстрирует, как использовать Docker-образ Nstbrowser для автоматической постановки лайков на TikTok.
Jan 08, 2025Robin Brown

У нас невероятная скидка 90% на подписку специально для вас!

Теперь вы можете наслаждаться следующими непревзойденными ценами:

  • Профессиональный план: всего **29.9/месяц** (первоначальная цена 299)
  • Корпоративный план: всего **59.9/месяц** (первоначальная цена 599)

Более того, вы будете продолжать пользоваться этими скидками с автоматическим продлением! Никаких дополнительных действий не требуется — ваша скидка будет автоматически применена при продлении.

Получите свою специальную скидку сейчас!

Предварительные требования

Прежде чем начать учебник, давайте сначала разберемся, что такое Nstbrowser и Nstbrowser docker.

Nstbrowser — это мощный браузер с отпечатками пальцев, который предоставляет реальную среду браузера для каждой учетной записи пользователя. Каждый браузер изолирован друг от друга и может достигать кроссплатформенной симуляции среды. Основанный на технологии браузера с отпечатками пальцев, он может легко обходить отслеживание учетных записей и обнаружение различных сайтов.

Nstbrowser docker — это образ docker, созданный на основе Nstbrowser. Из-за ограниченных локальных ресурсов мы можем легко развернуть Nstbrowser в облачных сервисах через docker. Основываясь на функции облачной синхронизации, мы можем напрямую использовать Nstbrowser в Nstbrowser docker для создания культивированной среды браузера.

Далее мы покажем, как использовать Nstbrowser docker для автоматического клика лайков на TikTok (Примечание: TikTok имеет строгий контроль предотвращения рисков учетной записи, пожалуйста, старайтесь не использовать недавно созданные учетные записи)

Шаг 1. Создание среды профиля

  1. Создайте новый профиль и включите облачную синхронизацию и синхронизацию cookie в настройках группы. Настройте параметры прокси и отпечатков пальцев в соответствии с вашими потребностями при создании профиля:
Создание среды профиля
Создание среды профиля
  1. Запустите профиль и войдите в учетную запись TikTok, которую вам нужно использовать. Вы также можете использовать скрипт Puppeteer для входа в учетную запись:
Вход в учетную запись TikTok
  1. Закройте вошедший в систему профиль, вы увидите статус загрузки, и Nstbrowser синхронизировал ваши данные профиля в облако.
Закрытие вошедшего в систему профиля

Шаг 2. Подготовка среды Nstbrowser Docker

  1. Скачайте образ Nstbrowser docker
Bash Copy
docker pull docker.io/nstbrowser/browserless:latest
  1. Запустите контейнер
Bash Copy
docker run -d -it \
  -e TOKEN="ВАШ API КЛЮЧ" \
  -p 8848:8848 \
  --name nstbrowserless \
  nstbrowser/browserless:latest

Шаг 3. Создание скрипта для клика "Нравится"

Здесь мы используем puppeteer-core + axios для демонстрации

  1. Установите puppeteer-core и axios:
Bash Copy
# pnpm
pnpm i puppeteer-core axios
# yarn
yarn add puppeteer-core axios
# npm
npm i --save puppeteer-core axios
  1. Запустите Nstbrowser в docker

Перед использованием puppeteer для подключения к Nstbrowser необходимо сначала запустить Nstbrowser, запустите интерфейс: http://localhost:8848/start/{profileId}. Вы можете проверить подробные сведения об интерфейсе и параметры на официальном сайте:

javaScript Copy
const baseUrl = 'localhost:8848'
const profileId = 'ВАШ_PROFILEID'

async function startBrowser() {
  const config = {
    "name": "tiktok_star",
    "platform": "windows",
    "kernel": "chrome",
    "kernelMilestone": "130",
    // "proxy": "http://127.0.0.1:8000",   // Вы можете использовать пользовательский прокси
    // "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);
    });
}
  1. Напишите скрипт Puppeteer

Мы переходим на сайт TikTok. И получаем элемент поля ввода и кнопку ОК на веб-странице через инструмент разработчика (F12):

Написание скрипта Puppeteer
Написание скрипта Puppeteer

Введите нужное вам пользовательское содержимое:

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. Получите элемент первого видео и щелкните по нему:
Получение элемента первого видео и щелчок по нему
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. Перейдите на страницу воспроизведения видео

Иногда при переходе на страницу воспроизведения по умолчанию будет использоваться режим маленького окна. Нам нужно восстановить окно:

JavaScript Copy
try {
   await page.waitForSelector('button.e12q9uh55.css-1xiq6b1-Button-ButtonReturn.e1v8cfre0', { timeout: 3000 });
   // закрыть PictureInPicture
   await page.click('button.e12q9uh55.css-1xiq6b1-Button-ButtonReturn.e1v8cfre0')

 } catch (e) {
   console.log("cant find close button")
 }

Подождите, пока видео воспроизведется некоторое время, прежде чем поставить лайк

Подождите, пока видео воспроизведется
JavaScript Copy
// подождите, пока видео воспроизведется некоторое время
await new Promise(resolve => setTimeout(resolve, 10000));

// поставить лайк
await page.click('button.css-1mizk9b-ButtonActionItem.e1hk3hf90')

Затем переместите видео на следующее и повторите эту операцию:

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

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

     // подождите, пока видео воспроизведется некоторое время
     await new Promise(resolve => setTimeout(resolve, 10000));

     // поставить лайк
     await page.click('button.css-1mizk9b-ButtonActionItem.e1hk3hf90')

     // переместите мышь в центр видео
     await page.mouse.move(
       boundingBox.x + boundingBox.width / 2,
       boundingBox.y + boundingBox.height / 2
     );

     // прокрутите видео вниз
     await page.mouse.wheel({ deltaY: 100 });
}
  1. Полный код выглядит следующим образом:
JavaScript Copy
import puppeteer from 'puppeteer-core';
import axios from 'axios';

const baseUrl = 'localhost:8848'
const profileId = 'ВАШ_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 });
      // закрыть PictureInPicture
      await page.click('button.e12q9uh55.css-1xiq6b1-Button-ButtonReturn.e1v8cfre0')

    } catch (e) {
      console.log("cant find close button")
    }

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

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

    // получить ограничивающий прямоугольник видео
    const boundingBox = await page.$('body video').then(el => el.boundingBox());

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

      // подождите, пока видео воспроизведется некоторое время
      await new Promise(resolve => setTimeout(resolve, 10000));

      // поставить лайк
      await page.click('button.css-1mizk9b-ButtonActionItem.e1hk3hf90')

      // переместите мышь в центр видео
      await page.mouse.move(
        boundingBox.x + boundingBox.width / 2,
        boundingBox.y + boundingBox.height / 2
      );

      // прокрутите видео вниз
      await page.mouse.wheel({ deltaY: 100 });
    }

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

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

В заключение

Функция облачной синхронизации Nstbrowser позволяет создавать профиль на любом устройстве и синхронизировать профиль с другими устройствами и средами docker.

Облачная синхронизация может сохранять содержимое и историю последней посещенной вами страницы, значительно упрощая затраты на работу. И та же среда профиля одинакова на любом устройстве, что может предотвратить обнаружение устройства на сайте. Куки облачной синхронизации могут синхронизировать данные куки пользователя вместе, и состояние входа в систему на основе куки также может быть синхронизировано с той же средой профиля.

Больше
Как использовать Browserless от Nstbrowser для автоматического решения капчи Cloudflare Turnstile (2025)
BrowserlessCloudflare BypassHeadless Browser
Как использовать Browserless от Nstbrowser для автоматического решения капчи Cloudflare Turnstile (2025)
Узнайте, как обойти Cloudflare Turnstile, используя сервис Browserless от Nstbrowser и Puppeteer. Это руководство проведет вас через настройку, реализацию и преимущества автоматизации задач веб-скрейпинга, обеспечивая соответствие требованиям и эффективность.
Mar 07, 2025Luke Ulyanov
Как обойти защиту Cloudflare 5s с помощью Browserless от Nstbrowser (2025)
BrowserlessCloudflare BypassHeadless Browser
Как обойти защиту Cloudflare 5s с помощью Browserless от Nstbrowser (2025)
Узнайте, как обойти 5-секундный вызов Cloudflare с помощью сервиса Browserless от Nstbrowser и Puppeteer. Это руководство проведет вас через настройку, реализацию и преимущества автоматизации задач веб-скрапинга, обеспечивая соответствие и эффективность.
Mar 06, 2025Robin Brown
Используйте Docker-образ Nstbrowser для автоматической постановки лайков на TikTok
Headless Browser
Как использовать Docker-образ Nstbrowser для автоматической постановки лайков на TikTok?
Это руководство демонстрирует, как использовать Docker-образ Nstbrowser для автоматической постановки лайков на TikTok.
Jan 08, 2025Robin Brown
docker-скрейп-youtube
Headless Browser
Как использовать Docker-образ Nstbrowser для скачивания видео с YouTube?
В этом руководстве используется образ Docker Nstbrowser для демонстрации извлечения ссылок на видео YouTube
Jan 08, 2025Luke Ulyanov
браузер без головы, browserless
Headless Browser
Тестирование браузера без графического интерфейса: Что это такое и как это сделать?
Тестирование веб-приложений в браузере без графического интерфейса – это более быстрый, надежный и эффективный способ. Читайте этот блог и найдите подробное руководство по тестированию в браузере без графического интерфейса.
Sep 12, 2024Vasilisa Samsonova
безголовый браузер
Headless Browser
Безголовый браузер: как запустить его в Puppeteer?
С помощью headlesschrome парсинг веб-страниц стал проще! Что такое безголовый браузер? Почему Puppeteer подходит для парсинга веб-страниц? Узнайте конкретную информацию из этого руководства.
Jul 18, 2024Luke Ulyanov
Каталог