我用木偶戏去刮。我可以传递navigator.webdriver属性= false但我需要完全删除该道具。
我尝试将false传递给navigator.webdriver。这个技巧可以传递给https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html
但在https://bot.sannysoft.com/不能。
这是网页测试机器人。这个测试正在寻找导航器对象中是否有任何“webdriver”道具。不在乎它的真假。我需要从浏览器中删除此webdriver prop。
试试这个 :?
const newProto = navigator.__proto__;
delete newProto.webdriver;
navigator.__proto__ = newProto;
既然我不能发表评论,我会留下答案:
我有同样的问题,@ Nodarius的回答对我有用。既然你不接受它,我认为你的问题仍然存在。
这可能是因为,即使您运行,您也需要在页面加载之前(或在网站访问变量之前)运行该代码。
我使用代理(https://mitmproxy.org/)实现了这一点,该代理在页面加载之前加载脚本。
希望能帮助到你。
这有效
await page.evaluateOnNewDocument(() => {
window.navigator = {}
})