Идентичность
Настройка часового пояса, локали и языка в BotBrowser
Узнайте, как настроить часовой пояс, локаль и язык с помощью CLI-флагов BotBrowser для согласованной идентификации браузера.
Почему географическая согласованность важна
Ваш браузер раскрывает информацию о часовом поясе, локали и языке через JavaScript API и HTTP-заголовки. Эти три свойства формируют географический слой идентификации вашего браузера и должны соответствовать местоположению вашего прокси для согласованного профиля.
CLI-флаги BotBrowser
BotBrowser предоставляет специализированные CLI-флаги для настройки каждого свойства на уровне движка браузера:
| Флаг | Назначение | Пример |
|---|---|---|
--bot-config-timezone | Установка часового пояса IANA | America/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();
}
Лучшие практики
- Используйте имена часовых поясов IANA, а не смещения UTC.
America/New_Yorkкорректно.UTC-5не учитывает переход на летнее время. - Устанавливайте языки в порядке приоритета. Включение английского как вторичного языка реалистично.
- Сопоставляйте координаты с городом прокси, а не с точным адресом. Точности на уровне города достаточно.
- Поддерживайте локаль и часовой пояс в одном регионе. Локаль
ja-JPс часовым поясомEurope/Londonне будет выглядеть согласованно. - Тестируйте вашу конфигурацию, посетив сайт проверки фингерпринтов после запуска.
Дополнительное чтение
#timezone#locale#language#identity#geolocation