puppeteer-browser-pool
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

puppeteer-pool

The simple puppeteer browser pool

Usage

import { PuppeteerPool } from 'puppeteer-pool';
 
const pool = new PuppeteerPool({
  headless: false,
  instanceCount: 5,
  delayTime: 1000,
});
 
pool.on('task', async ({ browser, data, done }) => {
  try {
    // using browser
  } catch (ex) {
    // log error
  } finally {
    // this important to set return browser back to pool
    done(browser);
  }
});
 
pool.addJob('5427');
 
await pool.waitUntiEmpty();
await pool.close();

Sample1

import { PuppeteerPool } from "../index";
import fs from "fs-extra";
 
(async () => {
  const pool = new PuppeteerPool({
    instanceCount: 5,
    userDataDir: ".profile",
    headless: true,
    waitPeriod: 1000,
    cloneProfileDir: "/tmp/",
  });
  fs.mkdirsSync("tmp");
  pool.on("task", async ({ browser, data, done }) => {
    const page = await browser.newPage();
    await page.goto(data);
    const uri = new URL(data);
 
    await page.screenshot({ path: `tmp/${uri.hostname}.png` });
    done(browser);
  });
 
  pool.addJob("http://google.com");
  pool.addJob("http://yahoo.com");
  pool.addJob("http://bing.com");
  await pool.waitUntiEmpty();
  await pool.close();
  console.log("finished");
})();
 

Readme

Keywords

Package Sidebar

Install

npm i puppeteer-browser-pool

Weekly Downloads

1

Version

1.0.3

License

MIT

Unpacked Size

51.8 kB

Total Files

15

Last publish

Collaborators

  • samuraitruong