Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/apify/fingerprint-suite
Browser fingerprinting tools for anonymizing your scrapers. Developed by Apify.
https://github.com/apify/fingerprint-suite
fingerprinting playwright puppeteer scraping typescript
Last synced: about 1 month ago
JSON representation
Browser fingerprinting tools for anonymizing your scrapers. Developed by Apify.
- Host: GitHub
- URL: https://github.com/apify/fingerprint-suite
- Owner: apify
- License: apache-2.0
- Created: 2022-05-04T14:25:01.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-05-01T00:20:32.000Z (6 months ago)
- Last Synced: 2024-05-01T21:27:04.648Z (6 months ago)
- Topics: fingerprinting, playwright, puppeteer, scraping, typescript
- Language: TypeScript
- Homepage:
- Size: 71.9 MB
- Stars: 703
- Watchers: 18
- Forks: 75
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
`fingerprint-suite` is a handcrafted assembly of tools for browser fingerprint generation and injection.
Today's websites are increasingly using fingerprinting to track users and identify them.
With the help of `fingerprint-suite` you can generate and inject browser fingerprints into your browser, allowing you to fly your scrapers under the radar.> Would you like to work with us on our fingerprinting tools or similar projects? [We are hiring!](https://apify.com/jobs)
## Overview
`fingerprint-suite` is a modular toolkit for browser fingerprint generation and injection. It consists of the following `npm` packages, which you can use separately, or together:
- [`header-generator`](https://www.npmjs.com/package/header-generator): generates configurable, realistic HTTP headers
- [`fingerprint-generator`](https://www.npmjs.com/package/fingerprint-generator): generates realistic browser fingerprints, affecting the HTTP headers and browser JS APIs
- [`fingerprint-injector`](https://www.npmjs.com/package/fingerprint-injector): injects browser fingerprints into your Playwright or Puppeteer managed browser instance
- [`generative-bayesian-network`](https://www.npmjs.com/package/generative-bayesian-network): our fast implementation of a Bayesian generative network used to generate realistic browser fingerprints## Quick start
The following example shows how to use the fingerprinting tools to camouflage your Playwright-managed Chromium instance.
```typescript
import { chromium } from 'playwright';
import { newInjectedContext } from 'fingerprint-injector';(async () => {
const browser = await chromium.launch({ headless: false });
const context = await newInjectedContext(
browser,
{
// Constraints for the generated fingerprint (optional)
fingerprintOptions: {
devices: ['mobile'],
operatingSystems: ['ios'],
},
// Playwright's newContext() options (optional, random example for illustration)
newContextOptions: {
geolocation: {
latitude: 51.50853,
longitude: -0.12574,
}
}
},
);const page = await context.newPage();
// ... your code using `page` here
})();
```Here is the same example using Puppeteer:
```typescript
import puppeteer from 'puppeteer';
import { newInjectedPage } from 'fingerprint-injector';(async () => {
const browser = await puppeteer.launch({ headless: false });
const page = await newInjectedPage(
browser,
{
// constraints for the generated fingerprint
fingerprintOptions: {
devices: ['mobile'],
operatingSystems: ['ios'],
},
},
);// ... your code using `page` here
await page.goto('https://example.com');
})();
```## Performance
With ever-improving performance of antibot fingerprinting services, we use some of the industry-leading services to benchmark our performance.
The following table shows how is the latest build of `fingerprint-suite` doing in comparison to other popular fingerprinting tools.![Fingerprinting Benchmark Report](https://raw.githubusercontent.com/apify/fingerprint-suite/master/test/antibot-services/live-testing/report.png)
## Support
If you find any bug or issue with any of the fingerprinting tools, please [submit an issue on GitHub](https://github.com/apify/fingerprint-suite/issues).
For questions, you can ask on [Stack Overflow](https://stackoverflow.com/questions/tagged/apify) or contact [email protected]## Contributing
Your code contributions are welcome and you'll be praised for eternity!
If you have any ideas for improvements, either submit an issue or create a pull request.
For contribution guidelines and the code of conduct,
see [CONTRIBUTING.md](https://github.com/apify/fingerprint-suite/blob/master/CONTRIBUTING.md).## License
This project is licensed under the Apache License 2.0 -
see the [LICENSE.md](https://github.com/apify/fingerprint-suite/blob/master/LICENSE.md) file for details.