Ensure you have the required libraries installed before proceeding.

Basic Web Scraping

Select Your Tech Stack:

const playwright = require('playwright');

const AUTH = process.env.AUTH || 'USER:PASS';
const TARGET_URL = process.env.TARGET_URL || 'https://example.com';

async function scrape(url = TARGET_URL) {
    if (AUTH === 'USER:PASS') {
        throw new Error('πŸ”‘ Missing credentials! Update the AUTH environment variable.');
    }
    console.log(`πŸš€ Connecting to browser.ai...`);
    
    const endpointURL = `wss://${AUTH}@brd.superproxy.io:9222`;
    const browser = await playwright.chromium.connectOverCDP(endpointURL);

    try {
        console.log(`🌎 Navigating to ${url}...`);
        const page = await browser.newPage();
        await page.goto(url, { timeout: 120000 });

        console.log(`πŸ“„ Extracting page content...`);
        const data = await page.content();
        console.log(`βœ… Data scraped:`, data);
    } finally {
        await browser.close();
    }
}

scrape().catch(err => console.error(`❌ Error:`, err));

Debugging & Inspecting Your Session

Want to see what’s happening inside your browser.ai session? Open DevTools automatically:

const { exec } = require('child_process');

const AUTH = process.env.AUTH || 'USER:PASS';
const browserWSEndpoint = `wss://${AUTH}@brd.superproxy.io:9222`;

(async () => {
    console.log("πŸš€ Connecting to browser.ai...");
    const browser = await puppeteer.connect({ browserWSEndpoint });
    const page = await browser.newPage();
    
    const client = await page.target().createCDPSession();
    const { url: inspectUrl } = await client.send('Page.inspect');
    
    console.log(`πŸ›  Open DevTools: ${inspectUrl}`);
    exec(`google-chrome "${inspectUrl}"`);
})();

Handling CAPTCHAs

browser.ai can automatically detect and solve CAPTCHAs in real time:

const puppeteer = require('puppeteer-core');

const AUTH = process.env.AUTH || 'USER:PASS';
const TARGET_URL = process.env.TARGET_URL || 'https://example.com';

(async () => {
    const browser = await puppeteer.connect({ browserWSEndpoint: `wss://${AUTH}@brd.superproxy.io:9222` });
    const page = await browser.newPage();
    
    await page.goto(TARGET_URL, { timeout: 120000 });

    console.log("πŸ”Ž Checking for CAPTCHA...");
    const client = await page.target().createCDPSession();
    const { status } = await client.send("Captcha.solve", { detectTimeout: 30000 });

    console.log(`πŸ›  CAPTCHA status: ${status}`);
})();

BrowserAI makes web scraping easy, scalable, and unblockable. Get started today!