咱们浏览网站尊府的时辰,发现存价值的文档,经常需要把材料保存下来。成功复制其实比拟繁重,而且有的网站还作念了辩别www.av,不粗拙成功保存。这时将页面成功保存为 PDF 方法的文献是一个很好的需求。
闲居的作念法是需要借助一些浏览器插件大约打印彭胀来兑现,这里咱们学习自动化的话,其实垄断 puppeteer 就不错粗拙地兑现这个标的。再加上器具的自动化加握,有余是爬取并保存挫折尊府的利器。
Puppeteer用法
对于 Puppeteer 器具的基本用法,在我之前的博文 《自动化测试器具Puppeteer简介》 中已有较全面先容,人人不错参考。
pdf() 的基本用法
在 Puppeteer 中保存 pdf 文献其实异常粗拙,通过调用 puppeteer 内置的 pdf() 措施就不错将现时页面保存为一个pdf文献
官方给的案例:
(async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto('https://news.ycombinator.com', { waitUntil: 'networkidle2', }); await page.pdf({ path: 'hn.pdf', format: 'letter', }); await browser.close();})();
用来打听一个技巧新闻团员网站,并将页面保存到 hn.pdf 文献中
PaperFormat
上头的例子中有个参数 format, 这个参数其实是指定保存的页面大小,不错取值为一些默许的打印页面大小,取值清单和对应的大小如下(单元英寸):
Letter: 8.5in x 11inLegal: 8.5in x 14inTabloid: 11in x 17inLedger: 17in x 11inA0: 33.1102in x 46.811inA1: 23.3858in x 33.1102inA2: 16.5354in x 23.3858inA3: 11.6929in x 16.5354inA4: 8.2677in x 11.6929inA5: 5.8268in x 8.2677inA6: 4.1339in x 5.8268in
PDFMargin
刘涛 ai换脸除了 format, 还不错像打印时建造页边距,建造 margin 属性, 对应取值
上头的代码加上页边距建造:
await page.pdf({ path: 'hn.pdf', format: 'A4', margin: {'left': 80, 'top': 40}, });
不错看到页边距也进行了转变
PDFOption
除了上头两个常用的转变参数外,这个措施其实也提供了其他更丰富的建造,基本不错兑现咱们保存 pdf 文档时的各名目式建造需要。
比如 scale 参数不错建造页面缩放,取值为0.1 ~ 2:
scale: 0.5,
其更多的建造参数,这里不再考据www.av,清单如下: