Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/overmiind/puppeteer-sharp-extra

Plugin framework for PuppeteerSharp
https://github.com/overmiind/puppeteer-sharp-extra

browser browser-automation browser-extension browser-testing chrome chrome-headless headless-chrome netcore netcore31 puppeteer puppeteer-extra recaptcha stealth-client

Last synced: about 6 hours ago
JSON representation

Plugin framework for PuppeteerSharp

Awesome Lists containing this project

README

        

# PuppeteerExtraSharp

[![NuGet Badge](https://buildstats.info/nuget/PuppeteerExtraSharp)](https://www.nuget.org/packages/PuppeteerExtraSharp)

Puppeteer extra sharp is a .NET port of the [Node.js library](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra)
## Quickstart

```c#
// Initialization plugin builder
var extra = new PuppeteerExtra();

// Use stealth plugin
extra.Use(new StealthPlugin());

// Launch the puppeteer browser with plugins
var browser = await extra.LaunchAsync(new LaunchOptions()
{
Headless = false
});

// Create a new page
var page = await browser.NewPageAsync();

await page.GoToAsync("http://google.com");

// Wait 2 second
await page.WaitForTimeoutAsync(2000);

// Take the screenshot
await page.ScreenshotAsync("extra.png");
```
## Plugin list

🏴 [Puppeteer stealth plugin](https://github.com/Overmiind/Puppeteer-sharp-extra/tree/master/PuppeteerExtraSharp/Plugins/ExtraStealth)
- Applies various evasion techniques to make detection of headless puppeteer harder.

📃 [Puppeteer anonymize UA plugin](https://github.com/Overmiind/Puppeteer-sharp-extra/tree/master/PuppeteerExtraSharp/Plugins/AnonymizeUa)
- Anonymizes the user-agent on all pages.

💀[Puppeteer recaptcha plugin](https://github.com/Overmiind/Puppeteer-sharp-extra/tree/master/PuppeteerExtraSharp/Plugins/Recaptcha)
- Solves recaptcha automatically

🔧[Puppeteer block resources plugin](https://github.com/Overmiind/Puppeteer-sharp-extra/tree/master/PuppeteerExtraSharp/Plugins/BlockResources)
- Blocks images, documents etc.

✋**More plugins coming soon**
## API

#### Use(IPuppeteerExtraPlugin)

Adds a new plugin to plugins list and register it.
- Returns the same instance of puppeteer extra
- Parameters: instance of IPuppeteerExtraPlugin interface
```c#
var puppeteerExtra = new PuppeteerExtra().Use(new AnonymizeUaPlugin()).Use(new StealthPlugin());
```

#### LaunchAsync(LaunchOptions)

- Return the new puppeteer browser instance with launch options

```c#
var browser = new PuppeteerExtra().LaunchAsync(new LaunchOptions());
```

#### ConnectAsync(ConnectOptions)
- Connect to the exiting browser with connect options
```c#
var browser = new PuppeteerExtra().ConnectAsync(new ConnectOptions());
```

#### GetPlugin()
- Get plugin from plugin list by type
```c#
var stealthPlugin = puppeteerExtra.GetPlugin();
```