1.0.18 • Published 1 year ago

puppeteer-extra-plugin-session-persistence-test v1.0.18

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Puppeteer Extra Plugin Session Persistence

This TypeScript library provides a Puppeteer Extra plugin for persisting sessions in Puppeteer. It saves and loads cookies and localStorage data from different storage engines.

Features

  • Save and load cookies and localStorage data
  • Supports different storage engines (default: filesystem)
  • Merge cookies and localStorage data from constructor and storage
  • Automatically set cookies and localStorage data when a new page is created

Installation

npm install puppeteer-extra-plugin-session-persistence

Strategies

The plugin supports different strategies for persisting session data, all activated by default:

  • A polling strategy, update very X seconds the cookies from every page (default 1000 ms), very useful for XHR requests that sets cookies by JS
  • On HTTP response, update the cookies from the response thanks to the 'set-cookie' header
  • Using onFrameNavigated event, update the cookies and localStorage data from every frame

Usage

const puppeteer = require('puppeteer-extra')
puppeteer.use(require('puppeteer-extra-plugin-session-persistence')())
// or
puppeteer.use(require('puppeteer-extra-plugin-session-persistence')({
  persistCookies: true,
  persistLocalStorage: true,
  storage: {
    name: 'filesystem',
    options: {
      localStorageDataFile: './localStorageData.json',
      cookiesFile: './cookies.json'
    }
  }
}))
const browser = await puppeteer.launch()

Options

  • persistCookies (boolean, default: true): Allow or disallow cookies persistence.
  • persistLocalStorage (boolean, default: true): Allow or disallow local storage persistence.
  • storage (StorageConfig, default: filesystem storage): Storage options.
  • localStorageData (LocalStorageData, default: {}): Local storage data to load.
  • cookies (Cookie[], default: []): Cookies to load.

Storage Engines

The plugin supports different storage engines for persisting session data:

  • File System Storage (default)
  • Redis Storage
  • In-Memory Storage

To use a specific storage engine, pass the corresponding configuration object to the plugin constructor. For example, to use Redis storage:

puppeteer.use(require('puppeteer-extra-plugin-session-persistence')({
  storage: {
    name: 'redis',
    options: {
      host: 'localhost',
      port: 6379
    }
  }
}))

License

This library is released under the MIT License.

1.0.18

1 year ago

1.0.17

1 year ago

1.0.16

1 year ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago