Headless Chrome和Puppeteer的使用
ON THIS PAGE
Headless Chrome
Chrome 59 之后提供了 Headless 模式,其允许在命令行中使用 Chromium 以及 Blink 渲染引擎提供的完整的现代 Web 平台特性。
为chrome可执行文件创建别名:
alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
#打印DOM:
chrome --headless --disable-gpu --dump-dom http://www.lxq.link
#输出为PDF:
chrome --headless --disable-gpu --print-to-pdf http://www.lxq.link
#获取页面截图:
chrome --headless --disable-gpu --screenshot http://www.lxq.link
# Size of a standard letterhead.
chrome --headless --disable-gpu --screenshot --window-size=1280,1696 http://www.lxq.link
# Nexus 5x
chrome --headless --disable-gpu --screenshot --window-size=412,732 http://www.lxq.link
Windows 系统可以使用 start 命令
start chrome --headless --enable-logging --disable-gpu --screenshot --hide-scrollbars --window-size=600,1000 "https://www.lxq.link"
注意: Windows 默认将输出文件写入到 chrome 可执行文件同级目录下,带有版本号的文件夹 比如:C:\Program Files\Google\Chrome\Application\88.0.4324.104
如果想指定输出的目录,要添加参数到--screenshot
完整的参数如下
start chrome --headless --enable-logging --disable-gpu --screenshot="D:\screen.png" --hide-scrollbars --window-size=600,1000 "https://www.lxq.link"
Headless Chrome Node API
Install Puppeteer
Puppeteer is a Node library which provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome or Chromium.
npm i --save puppeteer
下载完puppeteer包之后有执行node install.js去下载chromium,由于网络的原因,国内安装puppeteer时可能会报如下错误:
ERROR: Failed to download Chromium r536395! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
可以使用淘宝的cnpm安装:
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm i puppeteer --save
2020-03-10