目前用puppeteer 搭配node实现给某个网站截图的功能,但是有几率会出现截的图是没有加载后端数据的图片,推测是puppeteer还没加载完接口,就开始截图了,目前在网上搜索到的解决方法总结汇总如下:
1.主要是在page.goto 后面加上一个配置
'waitUntil':'networkidle0'
这个代表的意思是当前页面在500ms内没有http请求存在,再返回
还有一个值是networkidle2,代表的意思是当前页面在500ms内没有2个http请求存在
2.增加await page.content();,这句话的意思是获取当前页面的document数据
代码如下:
const browser = await puppeteer.launch({
args: ["--no-sandbox", "--disable-setuid-sandbox"]
});
const page = await browser.newPage();
const response = await page.goto(XXX,{'timeout':1000*30,'waitUntil':'networkidle0'});
await page.setViewport({
width: 1920,
height: 1080
});
await autoScroll(page);
await page.content();
await page.screenshot({
path: './paper.jpeg',
fullPage: true,
quality:70
});
await browser.close();
网友评论