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中进行演示。
- 为了方便使用,首先在命令行工具中设置chrome别名
1
alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
- 命令启动
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
以上