How to set 'locale' and 'timezoneId' on browsers or pages?

If in Playwright, I can create Page this way and set locale and TimezoneId
browser.newPage({
locale: 'zh-TW',
timezoneId: 'Asia/Taipei',
});
browser.newPage({
locale: 'zh-TW',
timezoneId: 'Asia/Taipei',
});
But if using PlaywrightCrawler, how to set it up? Does anyone know how to solve this?
3 Replies
compatible-crimson
compatible-crimsonOP3y ago
Finally I figured out how to set locales
{
preNavigationHooks: [
async ({ request }, gotOptions) => {
// https://github.com/apify/fingerprint-suite/blob/master/docs/guides/fingerprint-generator.md
let fingerprintGenerator = new FingerprintGenerator({
browsers: ['chrome', 'edge', 'firefox', 'safari'],
devices: ['desktop'],
locales: ['zh-TW'], // <======== here to set locales
operatingSystems: ['windows'],
});
// here to override config
gotOptions.headers = {
...fingerprintGenerator.getFingerprint().headers,
};
},
],
}
{
preNavigationHooks: [
async ({ request }, gotOptions) => {
// https://github.com/apify/fingerprint-suite/blob/master/docs/guides/fingerprint-generator.md
let fingerprintGenerator = new FingerprintGenerator({
browsers: ['chrome', 'edge', 'firefox', 'safari'],
devices: ['desktop'],
locales: ['zh-TW'], // <======== here to set locales
operatingSystems: ['windows'],
});
// here to override config
gotOptions.headers = {
...fingerprintGenerator.getFingerprint().headers,
};
},
],
}
rare-sapphire
rare-sapphire3y ago
Nice. You can also influence some browser properties via the launchContext https://crawlee.dev/api/playwright-crawler/interface/PlaywrightLaunchContext
PlaywrightLaunchContext | API | Crawlee
Apify extends the launch options of Playwright. You can use any of the Playwright compatible LaunchOptions options by providing the launchOptions property. Example: ```js // launch a headless Chrome (not Chromium) const launchContext = { // Apify helpers ...
compatible-crimson
compatible-crimsonOP3y ago
Thanks I found that crawlee has built-in FingerprintGenerator, so it can be set by this
new PlaywrightCrawler({
browserPoolOptions: {
fingerprintOptions: {
fingerprintGeneratorOptions: {
browsers: ['safari'],
devices: ['mobile'],
locales: ['zh', 'zh-CN', 'zh-TW'],
},
},
})
new PlaywrightCrawler({
browserPoolOptions: {
fingerprintOptions: {
fingerprintGeneratorOptions: {
browsers: ['safari'],
devices: ['mobile'],
locales: ['zh', 'zh-CN', 'zh-TW'],
},
},
})

Did you find this page helpful?