Назад к блогу
Идентичность

Настройка часового пояса, локали и языка в BotBrowser

Узнайте, как настроить часовой пояс, локаль и язык с помощью CLI-флагов BotBrowser для согласованной идентификации браузера.

Почему географическая согласованность важна

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

CLI-флаги BotBrowser

BotBrowser предоставляет специализированные CLI-флаги для настройки каждого свойства на уровне движка браузера:

ФлагНазначениеПример
--bot-config-timezoneУстановка часового пояса IANAAmerica/New_York
--bot-config-localeУстановка локали браузераen-US
--bot-config-languagesУстановка языковых предпочтенийen-US,en
--bot-config-locationУстановка координат геолокации40.7128,-74.0060

Эти флаги изменяют внутреннее состояние браузера, поэтому все JavaScript API возвращают согласованные значения.

Пример Playwright

const { chromium } = require('playwright-core');

(async () => {
  const browser = await chromium.launch({
    executablePath: '/path/to/botbrowser/chrome',
    args: [
      '--bot-profile=/path/to/profile.enc',
      '--proxy-server=socks5://user:pass@us-east.proxy.example:1080',
      '--bot-config-timezone=America/New_York',
      '--bot-config-locale=en-US',
      '--bot-config-languages=en-US,en',
      '--bot-config-location=40.7128,-74.0060',
    ],
    headless: true,
  });

  const context = await browser.newContext();
  const page = await context.newPage();

  const tz = await page.evaluate(() =>
    Intl.DateTimeFormat().resolvedOptions().timeZone
  );
  console.log('Timezone:', tz); // America/New_York

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

Настройка для нескольких регионов

const profiles = [
  {
    profile: '/profiles/de-user.enc',
    proxy: 'socks5://user:pass@de.proxy.example:1080',
    timezone: 'Europe/Berlin',
    locale: 'de-DE',
    languages: 'de-DE,de,en',
    location: '52.5200,13.4050',
  },
  {
    profile: '/profiles/jp-user.enc',
    proxy: 'socks5://user:pass@jp.proxy.example:1080',
    timezone: 'Asia/Tokyo',
    locale: 'ja-JP',
    languages: 'ja-JP,ja,en',
    location: '35.6762,139.6503',
  },
];

for (const cfg of profiles) {
  const browser = await chromium.launch({
    executablePath: '/path/to/botbrowser/chrome',
    args: [
      `--bot-profile=${cfg.profile}`,
      `--proxy-server=${cfg.proxy}`,
      `--bot-config-timezone=${cfg.timezone}`,
      `--bot-config-locale=${cfg.locale}`,
      `--bot-config-languages=${cfg.languages}`,
      `--bot-config-location=${cfg.location}`,
    ],
    headless: true,
  });
  await browser.close();
}

Лучшие практики

  1. Используйте имена часовых поясов IANA, а не смещения UTC. America/New_York корректно. UTC-5 не учитывает переход на летнее время.
  2. Устанавливайте языки в порядке приоритета. Включение английского как вторичного языка реалистично.
  3. Сопоставляйте координаты с городом прокси, а не с точным адресом. Точности на уровне города достаточно.
  4. Поддерживайте локаль и часовой пояс в одном регионе. Локаль ja-JP с часовым поясом Europe/London не будет выглядеть согласованно.
  5. Тестируйте вашу конфигурацию, посетив сайт проверки фингерпринтов после запуска.

Дополнительное чтение

#timezone#locale#language#identity#geolocation