puppeteer 批量截图
发布于 6 年前 作者 FantasticLBP 3144 次浏览 来自 问答

puppeteer 批量截图如何保证截图质量

外层 for 循环任务列表。贴出里面的代码

const browser = await puppeteer.launch({ ignoreHTTPSErrors: true, headless: true, args: ['--no-sandbox', '--disable-setuid-sandbox'] }).catch( err => {
    console.log('launch-err: ' + err)
    reject('fail')
  })
  // 打开新页面
  const page = await browser.newPage()
  // 设置页面分辨率
  await page.setViewport({ width: 1920, height: 1080 })
  // 访问
  console.log('website-> ' + taskInfo[2])
  await page.goto(taskInfo[2], { waitUntil: ['domcontentloaded', 'load','networkidle0'] }).catch(err => {
    console.log('goto-err-> ' + err)
    reject('fail')
  })
  await page.waitFor(5000)

  try {
    // 截图
    await page.screenshot({ path: snapShotFolerPath + snapshotName, fullPage: true }).catch(err => {
      console.log('screenshot-err-> ' + err)
      reject('fail')
    })
  } catch (e) {
    reject('fail')
    console.log('failed ' + e)
  } 

现在遇到的问题是截图可以成功,但是发现某些截图会遇到空白或 404 的情况,请问大佬们如何解决这问题的?

2 回复

也许你goto的那个页面真的404或者加载不出呢? headless模式关掉看看网页正常显示没。

@robberfree 暂时我是这么做的:抛出给外部捕获,然后视为失败,将失败的任务上传到 redis ,后期继续在失败的里面读取任务,继续截图

回到顶部