1.2.1 • Published 4 years ago
puppeteer-enhanced-browser v1.2.1
puppeteer-enhanced-browser
Headless puppeteer with additional plugins and settings
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-browserconst 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