什么是 Headless Chrome
Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序。相比于现代浏览器,Headless Chrome 更加方便测试 web 应用,获得网站的截图,做爬虫抓取信息等。相比于较早的 PhantomJS,SlimerJS 等,Headless Chrome 则更加贴近浏览器环境。
Headless Chrome作用
为了提高selenium脚本的执行速度,我们可能会考虑使用PhantomJS这类的Headless 浏览器,但这些工具对JavaScript支持不好或者对web的支持不好,占用资源多,跟真实浏览器存在一定的差异等等问题。Chrome 浏览器提供的Headless Chrome,简单说我们也可以在不打开chrome GUI的情况在Chrome下执行我们的Selenium脚本,可提升脚本的执行效率。
Headless Chrome 对Chrome版本要求
官方文档中介绍,mac和linux环境要求chrome版本是59+,而windows版本的chrome要求是60+
如果想进一步了解headless,请移步官网:
https://developers.google.cn/web/updates/2017/04/headless-chrome
示例:
环境:
win10
chrome=63
chromedriver =23
示例代码:
# -*- coding:utf-8 -*-
from
selenium
import
webdriver
option = webdriver.ChromeOptions()
option.add_argument(
'headless'
)
driver = webdriver.Chrome(
chrome_options
=option)
# driver = webdriver.Chrome()
# driver = webdriver.PhantomJS()
driver.get(
'https://www.baidu.com/'
)
print
(
'
打开浏览器
'
)
print
(driver.title)
driver.find_element_by_id(
'kw'
).send_keys(
'
测试
'
)
print
(
'
关闭
'
)
driver.quit()
print
(
'
测试完成
'
)
对比发现,执行速度大大提高了。