Robert Armand
Robert Armand

Reputation: 13

Problem overwriting navigator.languages in puppeteer

I have a problem that I can't solve, to finish making anonymous puppeteer. So far I have passed all the anti-bot tests, but I can't configure the language, let me explain:

I hope there is someone who can help me change the languages.

I attach screenshots and link of the plugin I use.

https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth

https://github.com/berstend/puppeteer-extra/blob/master/packages/puppeteer-extra-plugin-stealth/evasions/user-agent-override/index.js



const puppeteer = require("puppeteer-extra");


// add stealth plugin and use defaults (all evasion techniques)


const stealth_plugin = require("puppeteer-extra-plugin-stealth");
const stealth = stealth_plugin();

puppeteer.use(stealth);

const UserAgentOverride = require("puppeteer-extra-plugin-stealth/evasions/user-agent-override");

const ua = UserAgentOverride({locale: "es-ES,es;q=0.9", userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.141 Safari/537.36", platform: "MacIntel"});

const path = require('path')
const websites = require('./websites.json')

async function run() {
    puppeteer.use(ua);

    const browser = await puppeteer.launch({
        headless: false,
        userDataDir: "./cache",
        ignoreHTTPSErrors: true,
        ignoreDefaultArgs: [
            "--disable-extensions",
            "--enable-automation",
        ],
        args: [
            "--lang=es-ES,es;q=0.9",
            "--no-sanbox",
            "--disable-dev-shm-usage",
            "--disable-gpu"
        ]
    })

    console.log(await browser.userAgent());
    const page = await browser.newPage()

    const pathRequire = path.join(__dirname, 'src/scripts/index.js')
    for (const website of websites) {
        require(pathRequire)(page, website)
    }

}

run().catch(error => { console.error("Something bad happend...", error); });

Image of anti bot test results:

Image of anti bot test results


Hi there Thanks for the answer, after testing the edited code, I have noticed the following:

And even without putting url it is well configured, I attach two images one with url and one without, I don't understand what I can do and I have tried everything.

Object.getOwnPropertyDescriptors (navigator.languages)

it's writable using the languages evasion:

[value] => en-US
[writable] => 1
[enumerable] => 1
[configurable] => 1

while it should be
configurable: false
enumerable: true
value: "es-ES"
writable: false

Image of anti bot test results

Image of anti bot test results

Upvotes: 1

Views: 2366

Answers (0)

Related Questions