Use puppeteer and fly under the radar
For some this is common knowledge, feel free to skip this then.
If you don't want to pay for a stealth browser(just like me, I'm cheap af) but you want to automate your tasks, what can you do?
You can use puppeteer and still have a good stealth,
1. avoid basic fingerprinting, use mac m1 machines, which can be rented from hetzner for as low as $55/month
2. important to have a custom remote-debugging-port instead of 0 (which is set by the puppeteer)
3. disable default pptr/playwright args and set your own, my example could be not enough for your use case
4. do not use headless mode, only headful. headless is too hard to spoof and its not worth the hussle
5. do not try to emulate windows user agent on mac machine and vice-versa. (or windows on linux, etc). if you use windows os, you must stay with windows useragents.
These settings are
not meant for massive scale, for that, you will need to work on more fingerprinting evasions but to run a few dozen of accounts, this is completely enough.
Simplified examples with puppeteer and playwright:
JavaScript:
const puppeteer = require('puppeteer-core');
(async () => {
const browser = await puppeteer.launch({
headless: false,
executablePath: '/usr/bin/google-chrome-stable',
ignoreDefaultArgs: true,
args: [
'--remote-debugging-port=9444',
'--user-data-dir=~/chrome-profiles/test-account-1',
'--no-first-run',
'--no-default-browser-check',
]
});
await new Promise(r => setTimeout(r, 2000));
const pages = await browser.pages();
const page = pages[0];
await page.goto('https://www.google.com/');
})();
})();
const { chromium } = require('playwright');
(async () => {
const browserServer = await chromium.launchServer({
executablePath: '/usr/bin/google-chrome-stable',
port: 9444,
headless: false,
ignoreDefaultArgs: true,
args: [
'--no-first-run',
'--no-default-browser-check',
'--user-data-dir=~/chrome-profiles/test-account-1',
]
});
const wsEndpoint = browserServer.wsEndpoint();
const browser = await chromium.connect(wsEndpoint);
const page = await browser.newPage()
await page.goto('https://google.com');
await browserServer.close();
})();
View attachment 226271
View attachment 226272
Recaptcha scoring(0.9 = bypassed all captchas with a green checkbox instead of the challenge)
View attachment 226273
View attachment 226274