使用selenium登录账号访问携程酒店时看不见评论,这是为什么。是被检测到使用webdriver了吗?
这种应该都会做反爬虫吧
如果想实现静默状态下,即不显示浏览器界面,可添加参数
chrome_option.add_argument('headless')
根据参考资料和问题描述,可能是由于携程检测到了使用Selenium进行自动化操作,导致无法正常访问。解决方案可以考虑以下几点:
script = 'Object.defineProperty(navigator,"webdriver",{get:() => false,});'
brower.execute_script(script)
这么做可以绕过携程对Selenium的检测,使得自动化操作变得正常。需要注意的是,这种方式只在当前页面有效,也就是说,当浏览器打开新标签或新窗口时,需要重新执行改变navigator.webdriver值的JavaScript代码。
browser.switch_to_frame("f1")
browser.switch_to_frame("f2")
chrome_options.add_argument(f'--window-position={100},{200}')
chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"
然后在代码中加入下面的配置即可使用刚刚打开的浏览器了:
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
这可以避免浏览器被检测出是自动化程序,更好地爬取数据。同时,基于该运行浏览器所产生的缓存、cookie等数据都会被记录,下次启动浏览器时可直接使用,避免因为没有缓存导致页面加载时间过长。