macaca-puppeteer

Gitter Chat NPM version build status Test coverage node version

Puppeteer is a Node library which provides a high-level API to control headless Chrome over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome.

Installment

$ npm i macaca-puppeteer -g

Usage as module


const co = require('co');
const fs = require('fs');
const path = require('path');
const Puppeteer = require('macaca-puppeteer');

const puppeteer = new Puppeteer();

co(function *() {
  /**
    default options
    {
      headless: false,
      x: 0,
      y: 0,
      width: 800,
      height: 600,
      userAgent: 'userAgent string'
    }
  */
  yield puppeteer.startDevice({
    headless: true // in silence
  });

  yield puppeteer.maximize();
  yield puppeteer.setWindowSize(null, 500, 500);
  yield puppeteer.get('https://www.baidu.com');
  const imgData = yield puppeteer.getScreenshot();
  const img = new Buffer(imgData, 'base64');
  const p = path.join(__dirname, '..', 'screenshot.png')
  fs.writeFileSync(p, img.toString('binary'), 'binary');
  console.log(`screenshot: ${p}`);

  yield puppeteer.stopDevice();
});