Содержание

Автоматизация FingerprintSwitcher.

Теперь вместе с сервисом FingerprintSwitcher можно использовать популярные фреймворки автоматизации. Список поддерживаемых фреймворков: selenium, puppeteer, playwright. Вы также можете использовать любую другую библиотеку автоматизации браузера, которая может работать через CDP.

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

В этом случае может пригодиться функционал, описанный на этой странице. Все, что вам нужно сделать, это использовать соответствующий плагин для вашего фреймворка.

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

Вот как это выглядит для проекта, написанного с использованием фреймворка puppeteer:

Обратите внимание, что BrowserAutomationStudio по-прежнему является наиболее предпочтительным способом автоматизации браузера. Софт позволяет изменять отпечатки браузера и также имеет много других функций: удобная и простая многопоточность, создание автономных приложений, визуальное программирование и многое другое. Если вы начинаете новый проект, мы настоятельно рекомендуем использовать именно BAS.

Как начать использовать?

Прежде всего, вам нужно выбрать плагин для используемой вами библиотеки автоматизации. Вот список доступных плагинов:

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

Важно понимать, что эта страница содержит только очень краткий обзор. Чтобы получить больше информации о том, как использовать плагины, необходимо открыть документацию по одной из ссылок выше.

Пример.

Предположим, у вас есть следующий код с использованием puppeteer:

//No fingerprints

const puppeteer = require('puppeteer');

(async () => {

  const browser = await puppeteer.launch();

  const page = await browser.newPage();
  await page.goto('https://browserleaks.com/canvas', { waitUntil: 'networkidle0' });

  console.log('Canvas fingerprint:', await page.$eval('#crc', (el) => el.innerText));

  await browser.close();
})();

Этот код получает идентификатор canvas, используя данный url https://browserleaks.com/canvas. Независимо от того, сколько раз вы будете запускать этот тест на одной и той же машине, результаты будут одинаковыми. Это происходит потому, что этот тест зависит от вашего ПК, если железо останется прежним, результаты также не будут изменяться. Но если мы изменим отпечаток, результат теста будет другими. Давайте добавим в этот проект поддержку отпечатков браузера. Обновленный код будет выглядеть так:

//With fingerprints

// Require `puppeteer-with-fingerprints` instead of `puppeteer`
// const puppeteer = require('puppeteer');
const { plugin } = require('puppeteer-with-fingerprints');

(async () => {

  //Obtain fingerprint from server. fingerprint variable contains string.
  //This string can be saved to use later.
  const fingerprint = await plugin.fetch('', {
      tags: ['Microsoft Windows', 'Chrome'],
  })

  //Apply fingerprint.
  //After calling useFingerprint method, browser will be launched with fingerprint.
  plugin.useFingerprint(fingerprint);

  // Replace `puppeteer.launch` method call with `plugin.launch`
  // const browser = await puppeteer.launch();
  const browser = await plugin.launch();

  //The rest of the code is the same as for a standard `puppeteer` library
  const page = await browser.newPage();
  await page.goto('https://browserleaks.com/canvas', { waitUntil: 'networkidle0' });

  console.log('Canvas fingerprint:', await page.$eval('#crc', (el) => el.innerText));

  await browser.close();
})();

После запуска измененного кода каждый раз будет применяться новый отпечаток, поэтому идентификатор canvas будет отличаться для каждого запуска.

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

Цена.

Плагины, описанные на этой странице, используют сервис FingerprintSwitcher. Для него доступна бесплатная и премиум версия. Плагины также поддерживают бесплатную версию со всеми ограничениями, присущими демо-версии FingerprintSwitcher. Чтобы использовать бесплатную версию, оставьте ключ пустым. Сравнение версий можно найти здесь.