https://fingerprint.com/products/bot-detection/ [bu testi geçmelisiniz]
https://fingerprint.com/demo/ [burdaki id değeriniz her tarayıcıda farklı olmalı]
https://nopecha.com/demo/cloudflare [bu cf waf captcha yı browser ınızın geçebilmesi gerekiyor]
az önce vm vare de test yaptım ordan da yakalanmıyor. Kendi oluşturduğum kütüphane ile tarayıcı açabilirsiniz yakalanacağınızı sanmıyorum.


import {puppeteerRealBrowser} from 'puppeteer-real-browser'
import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth'
puppeteer.use(StealthPlugin())

puppeteerRealBrowser({
    headless: true, // (optional) The default is false. If true is sent, the browser opens incognito. If false is sent, the browser opens visible.

    action:'socket', // (optional) If default, it connects with puppeteer by opening the browser and returns you the page and browser. if socket is sent, it returns you the browser url to connect to. 

    executablePath:'default', // (optional) If you want to use a different browser instead of Chromium, you can pass the browser path with this variable.

    // (optional) If you are using a proxy, you can send it as follows.

    // proxy:{
    //     host:'<proxy-host>',
    //     port:'<proxy-port>',
    //     username:'<proxy-username>',
    //     password:'<proxy-password>'
    // }

})
.then(async response => {
    const { browserWSEndpoint, userAgent, closeSession, chromePath } = response

    const browser = await puppeteer.launch({
        targetFilter: (target) => !!target.url(),
        browserWSEndpoint: browserWSEndpoint,
        ignoreHTTPSErrors: true,
        headless: false,
        args: ['--no-sandbox', '--start-maximized', "--window-size=1920,1040"],
        // ... puppeteer args
    });

    const pages = await browser.pages();
    const page = pages[0];

    // If you cannot pass waf in this way, you can try the following user agents respectively.
    
    // await page.setUserAgent(userAgent);
    // await page.setUserAgent(undefined);

    await page.setViewport({
        width: 1920,
        height: 1080,
    });
    
    // You can use it if you need to log in to a proxy.
    // await page.authenticate({ username: proxy.username, password: proxy.password });
    
    // await page.goto('<url>')
    // await closeSession()
    // await browser.close()
})
.catch(error=>{
    console.log(error.message)
})