在做自动化的时, 偶尔你需要打开一个页面获取某些字段,但由于某些原因(通常是安全), 你又不想这个页面展示出来, 这个时候,不打开浏览器而使用浏览器就是刚需了。
我本来以为这个是很基础的知识,这两天一直有人问,那么就干脆写下来吧。
Headless的浏览器我们以前经常用PhantomJS, 但随着google宣布支持headless后, PhantomJS也停止更新了,那么是时候使用headless了。
什么是Headless chrome呢?
Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序。相比于现代浏览器,Headless Chrome 更加方便测试 web 应用,获得网站的截图,做爬虫抓取信息等。相比于出道较早的 PhantomJS,SlimerJS 等,Headless Chrome 则更加贴近浏览器环境.
Headless有什么好处呢?
最直观的就是由于不需界面,所以速度上比普通浏览器稍快,也不会因为误操作界面导致人为错误。 另外,headless在爬虫程序,和网页截图时也经常用。
如何使用?
chrome 的headless模式实现起来很简单,无需下载, 只要你运行的机器上有最新版的chrome即可(事实上59版本以后都支持), 当然了你需要crhome driver在你python安装路径的根目录下。。
下面我们以百度首页为例,打印出搜索框的文本“百度一下”。
是不是很简单?全程没有看到网页被打开,但是我们还是获得了我们需要的元素。
事实上, headless 不仅仅chrome支持, firefox也支持。用法如下: