chrome headless探索

团队一直在支持视频提链的需求,近期利用chrome headless进行升级,效率大大提升。那么chrome headless是什么呢?

通过官方更新日志了解到,在chrome 59的版本加入了headless模式,所谓的headless就是一个无界面的浏览器,可以想有界面浏览器一样浏览网页,但无法直接看到页面。需要利用chrome远程调试接口进行调试。

那么,提供这样一个无界面的浏览器有什么用呢?官方给的答案是这样的

Why is that useful?

A headless browser is a great tool for automated testing and server environments where you don’t need a visible UI shell. For example, you may want to run some tests against a real web page, create a PDF of it, or just inspect how the browser renders an URL.

事实上,除了所描述的场景,还有更多的里有你会去使用他!

启动

首先确保你已经安装了chrome 59,本例在macOS中进行演示。

  1. 为了方便使用,首先在命令行工具中设置chrome别名
    1
    alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
  2. 命令启动
    1
    chrome --headless www.baidu.com

更多的命令参数,请大家自行挖掘

调试ui界面

如果想要调试UI界面,需要在启动时加上调试端口参数

1
chrome --headless --remote-debugging-port=9222 www.baidu.com

这样,在有图形界面的chrome中输入 http://localhost:9222 既可看到Baidu的首页了

通过以上步骤,既可以启动chrome headless模式,并进行调试了。如果你需要更多api,可以使用chrome-remote-interface 使用nodejs来写自己的处理程序

in the end

团队使用chrome headless模式进行各大视频网站的视频提链,效率极大提升,得益于这种NO GUI的浏览器的稳定以及丰富的调试API

以上