selenium无头模式(无界面启动)
selenium的无头模式是通过向浏览器传入参数实现的。
对chrome浏览器和firefox设置大体相同。阅读源码发现,Options类里有个_arguments数组,每次调用set_argument都是向该数组中append一个字符串。设置的参数和具体的浏览器有关。
对Chrome浏览器设置
from selenium import webdriver from selenium.webdriver.chrome.options import Options opts = Options() opts.headless = True # 设置无头模式,相当于执行了opt.add_argument(--headless)和opt.add_argument(--disable-gpu)(--disable-gpu禁用gpu加速仅windows系统下执行)。 browser = webdriver.Chrome(options=opts) # 如果没有将chromedriver加入环境变量,第一个参数需传入其绝对路径
禁止加载图片:
prefs = {
profile.default_content_setting_values : {
images : 2
}
}
opts.add_experimental_option(prefs,prefs)
chromedriver下载地址:http://npm.taobao.org/mirrors/chromedriver 更多参数可见:https://peter.sh/experiments/chromium-command-line-switches/
对Firefox浏览器设置
from selenium import webdriver from selenium.webdriver.firefox.options import Options opts = Options() opts.headless = True # 相当于执行了opt.add_argument(-headless) opts.set_preference(permissions.default.image, 2) # 禁止加载图片 browser = webdriver.Firefox(options=opts)
刚试了一下,同样的一段代码,无头模式下用chrome比firefox快了6秒。不知道和版本有没有关系。
