1.pyppeteer 使用chrome浏览器
browser = await pyppeteer.launch({'headless': False,
# executablePath 参数指明chrome路径
'executablePath': r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe',
})
# 创建浏览器对象
self.page = await browser.newPage()
根据网上搜索而得大部分的修改webdriver值都是一次性的不管是selenium的execute_script()方法,还是pyppeteer的evaluate()方法执行下面代码都能临时修改浏览器属性中的webdriver属性,当页面刷新或者跳转之后该值就原形毕露。
await page.evaluate('''() =>{
Object.defineProperties(navigator,{
webdriver:{
get: () => false
}
})
}''')
这种方法知识临时修改,当登录美团点评酒店时会被识别出, 滑块无论如何都会失败.
一次从知乎上看到的方法
await page.evaluateOnNewDocument('() =>{ Object.defineProperties(navigator,'
'{ webdriver:{ get: () => false } }) }')
这种方法可以永久修改, 这种登陆美团酒店点评就没事, 不会出现滑块验证.