puppeteer的简单试用

164 阅读1分钟


'use strict';

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  page.once('domcontentloaded', () => {
    console.log('Page domcontentloaded!');
  });

  page.on('requestfailed', request => {
    console.log('--------------------------------------------------------------------');
    console.log('请求失败url' + ` ${request.url()}`);
    console.log("请求失败错误码:" , request && request.response() ? request.response().status() : request.response());
    console.log("请求失败错误描述:" , request.failure());

  });

  page.on('requestfinished', request => {
    if (request.response().status() !== 200) {
      console.log('--------------------------------------------------------------------');
      console.log('请求完成非200的url' + ` ${request.url()}`);
      console.log("请请求完成非200错误码:" , request && request.response() ? request.response().status() : request.response());
      console.log("请求完成非200错误描述:" , request.failure());
    }
  });

  page.on('pageerror', err => {
    console.log('--------------------------------------------------------------------');
    console.error('PAGEERROR', err);
  });

  page.on('error', err => {
    console.error('error', err);
  });
  page.on('console', msg => {
    // console.log('PAGE LOG:', msg.text());
  });

  page.once('close', () => {
    console.log('Page close!');
  });

  console.log(process.argv.slice(2));
  // await page.goto('https://yanessa-yu.github.io/learn_javascript/index.html');
  await page.goto(process.argv.slice(2)[0]);

  await page.waitForTimeout(60000);

  await browser.close();
})();