Not a Propaganda Machine

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

    1.2.1 • Public • Published

    puppeteer-enhanced-browser

    Headless puppeteer with additional plugins and settings

    npm License

    Features

    • Ad block and stealth plugins
    • Add or remove plugins
    • Automatic tiles for page snapshots
    • A few puppeteer glitch workarounds

    How to use

    npm i puppeteer-enhanced-browser
    # or
    yarn add puppeteer-enhanced-browser
    const browser = require('puppeteer-enhanced-browser')
    // or
    import { GoToPage, GetBrowser, CloseBrowser } from 'puppeteer-enhanced-browser'

    You can optionally request evaluation results, page content or snapshots.

    // then
    GoToPage('https://example.com', { 
      content: true, /* HTML of the page */
      snapshots: true, /* or options for tile size etc... */, 
      evaluate: function () { /* results.evaluate will equal the body width */
        return document.body.clientWidth
      }
    })
    .then((results) => {
      // TODO
    })
    // or
    const { snapshots, evaluate } = await GoToPage('https://example.com', { 
      content: true, /* HTML of the page */
      snapshots: true, /* or options for tile size etc... */, 
      evaluate: function () { /* evaluate will equal the body width */
        return document.body.clientWidth
      }
    })

    Evalulation with args passed between your code context and puppeteer's browser context

    const { evaluate } = await GoToPage('https://example.com', {
      evaluate: function (a, b) { /* evaluate will equal the body width */
        return a + b
      },
      evaluateArgs: [1, 2]
    })

    Adjusting the tile size and/or snapshot limits

    const { evaluate, snapshots } = await GoToPage('https://example.com', {
      snapshots: {
        tileSize: 1000, /* 1000px wide snapshots */
        limit: 5 /* do not snapshot the entire page, but only 5 snapshots. Depending on the tileSize this will return snapshots from all of or a portion of the page */
      }
    });

    Script and/or style injections

    const { evaluate } = await GoToPage('https://example.com', {
      style: `body { width: 1000px !important; }`,
      script: `window.myObj = { function message () { return 'Hello World!'; } }`
      evaluate: () => {
        return window.myObj.message();
      }
    });
    console.log(evaluate)

    Add/Remove plugins

    import { PuppeteerExtraPlugin } from 'puppeteer-extra-plugin'
    import { AddPlugin, RemovePlugin } from 'puppeteer-enhanced-browser'
    
    class TestPlugin extends PuppeteerExtraPlugin {
      constructor(opts = {}) {
        super(opts)
      }
    
      get name() {
        return 'testplugin'
      }
    }
    
    // add a new plugin
    AddPlugin(new TestPlugin())
    // remove the default adblock plugin
    RemovePlugin('adblock')

    Modify puppeteer launch options

    You can setup launch option before calling GoToPage, GetBrowser or by calling CloseBrowser and then executing one of the former functions.

    import PuppeteerLaunchOptions from 'puppeteer-enhanced-browser'
    PuppeteerLaunchOptions.dumpio = true

    Install

    npm i puppeteer-enhanced-browser

    DownloadsWeekly Downloads

    3

    Version

    1.2.1

    License

    MIT

    Unpacked Size

    47.9 kB

    Total Files

    8

    Last publish

    Collaborators

    • ironincoder