Skip to content

Instantly share code, notes, and snippets.

@smartdev10
Created July 28, 2020 23:30
Show Gist options
  • Save smartdev10/d7323163c8346c97a9625b18d04ebbc0 to your computer and use it in GitHub Desktop.
Save smartdev10/d7323163c8346c97a9625b18d04ebbc0 to your computer and use it in GitHub Desktop.

Revisions

  1. smartdev10 created this gist Jul 28, 2020.
    32 changes: 32 additions & 0 deletions CreateBrowser.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,32 @@
    const puppeteer = require('puppeteer-extra');
    const StealthPlugin = require('puppeteer-extra-plugin-stealth');
    const AdblockerPlugin = require('puppeteer-extra-plugin-adblocker');

    (async() => {

    puppeteer.use(AdblockerPlugin({ blockTrackers: true }));
    puppeteer.use(StealthPlugin());
    puppeteer.use(require('puppeteer-extra-plugin-anonymize-ua')())
    puppeteer.use(require('puppeteer-extra-plugin-user-preferences')({userPrefs: {
    webkit: {
    webprefs: {
    default_font_size: 16
    }
    }
    }}))

    let browser = await puppeteer.launch({
    headless:false,
    defaultViewport: null,
    ignoreDefaultArgs: ['--disable-extensions'],
    args: [
    '--start-maximized',
    '--no-sandbox',
    '--disable-setuid-sandbox'
    ]
    })
    console.log(browser.wsEndpoint())
    })().catch((error)=>{

    console.error(error.message)
    });
    38 changes: 38 additions & 0 deletions connect.ts
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,38 @@
    import puppeteer, { BrowserContext } from 'puppeteer';
    import { Browser , Page } from 'puppeteer';


    let browser : Browser;
    let browserCtx : BrowserContext;
    let page : Page;
    (async() => {
    const browser = await puppeteer.connect({
    browserWSEndpoint: 'browser endpoint', //the first file will log the url for the browser
    });


    const browserCtx = await browser.createIncognitoBrowserContext();

    const page = await browserCtx.newPage();

    //some tricks i found to make puppeteer undetectable in this link ttps://intoli.com/blog/making-chrome-headless-undetectable/
    await page.evaluateOnNewDocument(() => {
    Object.defineProperty(window, 'navigator', {
    value: new Proxy(navigator, {
    has: (target, key) => (key === 'webdriver' ? false : key in target),
    get: (target, key) =>
    key === 'webdriver'
    ? undefined
    : typeof target[key] === 'function'
    ? target[key].bind(target)
    : target[key]
    })
    })
    })

    await page.goto('https://mail.google.com/mail/' , { waitUntil: 'networkidle2' });

    })()