我有一个我无法解决的问题,要完成匿名木偶师的制作。到目前为止,我已经通过了所有的反机器人测试,但是我无法配置语言,让我解释一下:
我希望有人能帮我改变语言。
我附上截图和链接的插件,我使用。
https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth
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); });反bot测试结果图片:

您好,谢谢您的回答,在测试了编辑的代码之后,我注意到以下几点:
即使没有放置url它是很好的配置,我附上两个图像,一个与url和一个没有,我不知道我能做什么,我已经尝试了一切。
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发布于 2021-02-15 16:09:28
每次启动新页时,我都设法保留指定的语言,但我仍然不解析铬浏览器中的默认权限:
Object.getOwnPropertyDescriptors (navigator.languages)
虽然它应该是可配置的: false枚举:真值:"es-ES“可写: false
如果有人知道怎么解决这个问题,我会很感激的。
const websites = require('./websites.json')异步函数run() { puppeteer.use(ua);
const optionslaunch = require("./src/scripts/options/optionslaunch");
const browser = await puppeteer.launch(optionslaunch)
const page = await browser.newPage()
// Set the language forcefully on javascript
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, "language", {
get: function () {
return "es-ES";
}
});
Object.defineProperty(navigator, "languages", {
get: function () {
return ["es-ES", "es"];
}
});
});const pathRequire = path.join(__dirname,‘src/script/app.js’)
for (const website of websites) {
// require(pathRequire)(page, pageEmail, website)
require(pathRequire)(page, website)
}}
run().catch(error => {console.error(“有事发生了.”,错误);});
https://stackoverflow.com/questions/66094546
复制相似问题