javascript - 如何通过 CDN 在我的网站中使用 puppeteer
问题描述
我正在尝试使用 Puppeteer 直接在我的网站上生成 PDF 文件。
我的问题是我不知道如何将所需的文件添加到我的网站。
所有指南都附有这条线:
const puppeteer = require('puppeteer');
但是当我运行代码时,我得到了这个错误:require is not defined
这是我试图运行的代码:
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
const page = await browser.newPage();
await page.goto('https://www.google.com');
await page.pdf({
scale: 1,
displayHeaderFooter: false,
printBackground: true,
landscape: false,
path: 'hn.pdf',
format: 'A4',
width: 1200,
height: 3500,
margin: {
top: 0,
right: 0,
left: 0,
bottom: 0
}
});
await browser.close();
});
通常,当我想使用一些在线库时,它带有一个 cdn 链接,或者您可以下载 .js 文件并将它们托管在我的网站中,然后我可以随意使用代码。
但在这种情况下,我以各种方式搜索(大约 2.5 小时),但我找不到任何东西。
在谷歌 Puppeteer CDN 上搜索我得到了这个:https ://www.jsdelivr.com/package/npm/puppeteer
但不知道如何使用..谢谢!
编辑:
经过一些尝试,我按照 Browserify 指南创建了一个 .js 文件。我添加了这段代码:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
})();
并创建了该代码包,生成了以下 js 脚本:https ://puu.sh/AGF4U/46204f1b5c.js
将脚本添加到我的网站并现在尝试执行此代码:
(async () => {
await page.goto('https://google.com', {waitUntil: 'networkidle2'});
await page.pdf({path: 'hn.pdf', format: 'A4'});
await browser.close();
})();
现在我在控制台上收到以下错误: https ://puu.sh/AGF6I/149fb9ec2b.png
谢谢!
解决方案
puppeteer
是一个node.js
库,它不能在浏览器、网页上运行。将其视为需要在计算机/服务器上运行的程序。
要使用它,需要先安装 node.js,然后安装 puppeteer,然后使用制作屏幕截图的程序创建一个脚本文件,最后从命令提示符运行它,例如
>node /path/to/script.js
推荐阅读
- c - 用于单元测试的 Makefile 使用它在另一个目录中的对应部分
- python - Python函数只工作一次
- google-sheets - 将最后 N 个值与条件相加
- java - java.lang.StringIndexOutOfBoundsException:更改包名时字符串索引超出范围
- android - Android webview不加载会话数据
- java - 在一个字符串中多次匹配一个模式
- r - 在纯素函数中使用并行处理?
- javascript - JavaScript this 内部函数对象
- python - 使用reduce()查找列表中最大值的变化次数(Python)
- javascript - 在javascript中使用多个条件过滤数组