webdriver有很多配置项,例如设置请求头、隐藏浏览器运行、配置Webdriver路径等;下面为你介绍常用的配置项:
2.1 首先调用对应的配置类(以chrome举例)
chrome_options = webdriver.ChromeOptions()
2.2 最大化浏览器窗口
chrome_options.add_argument('--start-maximized')
2.3 隐藏浏览器运行(无界面Linux时,不加这条会报错)
chrome_options.add_argument('--headless')
2.4 给予root执行权限(Linux上运行时需要)
chrome_options.add_argument('--no-sandbox')
2.5 不加载图片,提升速度
chrome_options.add_argument('blink-settings=imagesEnabled=false')
2.6 使用已打开的浏览器
以chrome浏览器举例,我们可以通过【cmd】在chrome所在目录执行命令:
chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"
-remote-debugging-port
:用于配置浏览器启动占用的端口,可以指定任何未被占用的端口
-user-data-dir
:指定创建新Chrome配置文件的目录;它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。
然后在代码中加入下面的配置即可使用刚刚打开的浏览器了
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
这样做的好处是:
- 是一个由chrome启动的浏览器,不容易被所测网站检测出是自动化程序、有利于爬虫的过检测。
- 基于该运行浏览器所产生的缓存、cookie等数据都会被记录。下次启动的时候不用重新登录帐号,也不用因为没有缓存导致页面加载时间过长。
2.7 手动指定浏览器位置
当存在多个谷歌浏览器或谷歌浏览器环境异常时,可以指定其浏览器文件路径进行驱动
chrome_options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"