我选择哪一种无头浏览器?
Which one of the headless browse do i choose?
我们前几天使用phantomjs 与服务器端王子工具生成pdf。现在我们喜欢把无头浏览器从phantomjs换成另一个。
我正在研究哪个可以快速渲染 phantomjs 和 puppeteer。在我的例子中,报告应用程序生成 PDF,只有我用 puppeteer 和 phantomjs 测试它。 phantomjs 快速处理 HTML 与 puppeteer 相比。
然后我学习 google-chrome-headless 选项来生成 PDF。它看起来像一个 Chrome 浏览器 GUI 应用程序内置模块。我正在使用 nodejs 应用程序。我从命令行使用以下命令
chrome --headless --disable-gpu --print-to-pdf <src_url>
我注意到 --disable-gpu 选项,其他工具没有。
- 此选项与其他两个无头浏览器工具(phantomjs、puppeteer)有何不同?
- 我可以使用哪个工具生成 pdf?
以下是这些工具的作用,
- phantomJS 是一个可编写脚本的 Headless WebKit。类似于铬浏览器。 已弃用,项目已存档。
- chromium:Chromium 是 Google 的 open-source 网络浏览器项目。它本身就是一个功能齐全的浏览器,并为 Google Chrome 浏览器提供绝大多数代码。
- chromium-headless:Headless Chrome 正在 Chrome 59 发货。这是 运行 [=49] 的一种方式=] 无头环境中的浏览器。本质上,运行宁 Chrome 没有 chrome!它将 Chromium 和 Blink 渲染引擎提供的所有现代网络平台功能带到命令行。
- Puppeteer:Puppeteer 是一个节点库,它提供 high-level API 来通过 DevTools 协议控制 Chrome 或 Chromium。 Puppeteer 运行 默认无头,但可以配置为 运行 完整 (non-headless) Chrome 或 Chromium。
您可以使用 puppeteer 控制 chromium 和 chromium headless 实例。当然,它允许您提供参数并使用 API.
生成 PDF
您可以使用 Chrome CLI 和 Puppeteer 控制相同的 API。
以下是如何使用 chromium headless 生成网站的 pdf。
chrome --headless --disable-gpu --print-to-pdf https://www.chromestatus.com/
这里使用 puppeteer 也是一样的,
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.chromestatus.com/');
await page.pdf({path: 'chromestatus.pdf', format: 'A4'});
await browser.close();
})();
我们前几天使用phantomjs 与服务器端王子工具生成pdf。现在我们喜欢把无头浏览器从phantomjs换成另一个。
我正在研究哪个可以快速渲染 phantomjs 和 puppeteer。在我的例子中,报告应用程序生成 PDF,只有我用 puppeteer 和 phantomjs 测试它。 phantomjs 快速处理 HTML 与 puppeteer 相比。
然后我学习 google-chrome-headless 选项来生成 PDF。它看起来像一个 Chrome 浏览器 GUI 应用程序内置模块。我正在使用 nodejs 应用程序。我从命令行使用以下命令
chrome --headless --disable-gpu --print-to-pdf <src_url>
我注意到 --disable-gpu 选项,其他工具没有。
- 此选项与其他两个无头浏览器工具(phantomjs、puppeteer)有何不同?
- 我可以使用哪个工具生成 pdf?
以下是这些工具的作用,
- phantomJS 是一个可编写脚本的 Headless WebKit。类似于铬浏览器。 已弃用,项目已存档。
- chromium:Chromium 是 Google 的 open-source 网络浏览器项目。它本身就是一个功能齐全的浏览器,并为 Google Chrome 浏览器提供绝大多数代码。
- chromium-headless:Headless Chrome 正在 Chrome 59 发货。这是 运行 [=49] 的一种方式=] 无头环境中的浏览器。本质上,运行宁 Chrome 没有 chrome!它将 Chromium 和 Blink 渲染引擎提供的所有现代网络平台功能带到命令行。
- Puppeteer:Puppeteer 是一个节点库,它提供 high-level API 来通过 DevTools 协议控制 Chrome 或 Chromium。 Puppeteer 运行 默认无头,但可以配置为 运行 完整 (non-headless) Chrome 或 Chromium。
您可以使用 puppeteer 控制 chromium 和 chromium headless 实例。当然,它允许您提供参数并使用 API.
生成 PDF您可以使用 Chrome CLI 和 Puppeteer 控制相同的 API。
以下是如何使用 chromium headless 生成网站的 pdf。
chrome --headless --disable-gpu --print-to-pdf https://www.chromestatus.com/
这里使用 puppeteer 也是一样的,
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.chromestatus.com/');
await page.pdf({path: 'chromestatus.pdf', format: 'A4'});
await browser.close();
})();