我尝试使用Puppeteer将大约300个网页抓取为PDF,但是我的循环不起作用。目的是Puppeteer从数组中加载每个页面,生成PDF,然后在关闭之前遍历所有URL。
使用下面的代码,Puppeteer成功地抓取了第一个URL--然后停止。
代码(URL为占位符):
const puppeteer = require('puppeteer');
(async () => {
// Create a browser instance
const browser = await puppeteer.launch({ headless: true });
// Create a new page
const page = await browser.newPage();
// Set viewport width and height
await page.setViewport({ width: 1280, height: 720 });
const urlArray = [
'https://ask.metafilter.com/369890/Patio-furniture-designed-for-the-PNW',
'https://ask.metafilter.com/369889/Its-the-police-should-I-document-my-concern',
'https://ask.metafilter.com/369888/Training-my-over-excited-dog'
];
for(var i = 0; i < urlArray.length; i++) {
const website_url = urlArray[i];
// Open URL in current page
await page.goto(website_url, { waitUntil: 'networkidle0' });
// Download the PDF
const pdf = await page.pdf({
path: 'images/page_${i+1}.pdf',
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
});
}
// Close the browser instance
await browser.close();
})();
但是,如果我试图创建一个截图,换出这个:
// Download the PDF
const pdf = await page.pdf({
path: 'images/page.pdf',
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
});
为此:
// Capture screenshot
await page.screenshot({
path: `images/screenshot_full_${i+1}.jpg`,
fullPage: true
});
它循环良好,遍历数组中的每个URL。
我错过了什么?
我正在学习这些教程:https://www.bannerbear.com/blog/how-to-make-a-pdf-from-html-with-node-js-and-puppeteer/,https://www.bannerbear.com/blog/how-to-take-screenshots-with-puppeteer/
1条答案
按热度按时间epggiuax1#
正如@ggorlen所指出的,我在本应使用反勾号的地方使用了单引号:
应为: