Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chickencoding123/puppeteer-enhanced-browser
Headless puppeteer with additional plugins and settings
https://github.com/chickencoding123/puppeteer-enhanced-browser
headless puppeteer screenshots tiles
Last synced: 2 months ago
JSON representation
Headless puppeteer with additional plugins and settings
- Host: GitHub
- URL: https://github.com/chickencoding123/puppeteer-enhanced-browser
- Owner: chickencoding123
- License: mit
- Created: 2021-12-23T11:04:40.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-05-14T21:39:10.000Z (over 2 years ago)
- Last Synced: 2024-11-15T21:57:58.152Z (3 months ago)
- Topics: headless, puppeteer, screenshots, tiles
- Language: TypeScript
- Homepage:
- Size: 178 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
puppeteer-enhanced-browser
======Headless puppeteer with additional plugins and settings
[![npm](https://img.shields.io/npm/v/puppeteer-enhanced-browser)](https://www.npmjs.com/package/puppeteer-enhanced-browser) [![License](https://img.shields.io/npm/l/puppeteer-enhanced-browser)](https://github.com/chickencoding123/puppeteer-enhanced-browser/blob/main/LICENSE)
## Features
- Ad block and stealth plugins
- Add or remove plugins
- Automatic tiles for page snapshots
- A few puppeteer glitch workarounds## How to use
```sh
npm i puppeteer-enhanced-browser
# or
yarn add puppeteer-enhanced-browser
``````js
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.
```js
// 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
```js
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
```js
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
```js
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
```js
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.
```js
import PuppeteerLaunchOptions from 'puppeteer-enhanced-browser'
PuppeteerLaunchOptions.dumpio = true
```