使用Selenium+Headless Chrome爬虫,被浏览器识别出是由webdriver控制的表现:
webdriver自动打开浏览器,在控制台中输入window.navigator.webdriver
,可查看其变量值,若为true,则当前浏览器就是被webdriver打开的。这也是浏览器识别出当前浏览器是否是webdriver控制的标志。
解决办法
使用js代码,将window.navigator.webdrive
的值手动改为undefined
要在webdriver打开url之前修改,即在webdriver.get(url)前。
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})