{"id":25115374,"url":"https://github.com/luminati-io/scraping-browser","last_synced_at":"2026-04-12T17:03:16.907Z","repository":{"id":275915810,"uuid":"927588484","full_name":"luminati-io/scraping-browser","owner":"luminati-io","description":"Scraping Browser is an automated headless browser for effortless web scraping with Puppeteer, Selenium, and Playwright.","archived":false,"fork":false,"pushed_at":"2025-02-05T08:27:27.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-22T07:02:03.049Z","etag":null,"topics":["captcha-solving","headless-browser","headless-browsers","javascript","nodejs","playwright","proxy-server","puppeteer","python","scraping-browser","selenium","web-scraping"],"latest_commit_sha":null,"homepage":"https://brightdata.com/products/scraping-browser","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luminati-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-05T07:55:32.000Z","updated_at":"2025-02-05T08:27:31.000Z","dependencies_parsed_at":"2025-02-05T09:39:58.404Z","dependency_job_id":null,"html_url":"https://github.com/luminati-io/scraping-browser","commit_stats":null,"previous_names":["luminati-io/scraping-browser"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fscraping-browser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fscraping-browser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fscraping-browser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fscraping-browser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luminati-io","download_url":"https://codeload.github.com/luminati-io/scraping-browser/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246802626,"owners_count":20836373,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["captcha-solving","headless-browser","headless-browsers","javascript","nodejs","playwright","proxy-server","puppeteer","python","scraping-browser","selenium","web-scraping"],"created_at":"2025-02-08T02:18:32.970Z","updated_at":"2026-04-12T17:03:16.875Z","avatar_url":"https://github.com/luminati-io.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Scraping Browser by Bright Data\n\n*A fully automated headless browser solution for dynamic web scraping with Puppeteer, Selenium, and Playwright. The Scraping Browser is opened as a GUI on Bright Data's Infrastructure.*  \n\n[![Promo](https://github.com/luminati-io/LinkedIn-Scraper/raw/main/Proxies%20and%20scrapers%20GitHub%20bonus%20banner.png)](https://brightdata.com/products/scraping-browser) \n\n🔗 **[Get Started for Free](https://brightdata.com/products/scraping-browser)** | 📖 **[Official Documentation](https://docs.brightdata.com/scraping-automation/scraping-browser/introduction)**  \n\n---\n\n## 🔹 Overview  \nScraping Browser is a fully-hosted **browser-based scraping solution** that automates **multi-step data collection** with **built-in proxy management**, **CAPTCHA solving**, and **advanced website unblocking**. It supports **Puppeteer, Playwright, and Selenium**, enabling effortless web automation at an **unlimited scale**.  \n\n## ✅ Why Use Scraping Browser?  \n- **No Infrastructure Overhead** – Run and scale browser sessions via API without maintaining browser infrastructure.  \n- **Built-in Unlocking** – Auto-handles **CAPTCHAs, fingerprinting, retries, and JS rendering** under the hood.  \n- **Multi-Step Navigation** – Automate clicks, scrolling, form submissions, and hover interactions.  \n- **Unlimited Scaling** – Launch **thousands of concurrent browser sessions** without rate limits.  \n- **Global Geo-Access** – Unlock localized content with [**72M+ residential IPs across 195 countries**](https://brightdata.com/proxy-types/residential-proxies).  \n- **Seamless Debugging** – Monitor sessions in real-time with **Chrome DevTools integration**.  \n\n---\n\n## 🚀 Getting Started  \n\n### Install Dependencies  \nEnsure you have **Node.js**, **Python**, or **C#** installed along with your preferred web automation library:  \n\n```sh\n# Install Puppeteer\nnpm install puppeteer-core\n\n# Install Playwright\nnpm install playwright\n\n# Install Selenium\npip install selenium\n```\n\n## 🔧 Usage Examples\n\n### Puppeteer Example (JavaScript)\n\n```js\nconst puppeteer = require('puppeteer-core');\n\nconst SBR_WS_ENDPOINT = 'wss://brd-customer-\u003cYOUR-USERNAME\u003e-zone-\u003cYOUR-ZONE-NAME\u003e:\u003cYOUR-PASSWORD\u003e@brd.superproxy.io:9222';\n\nasync function main() {\n    console.log('Connecting to Scraping Browser...');\n    const browser = await puppeteer.connect({ browserWSEndpoint: SBR_WS_ENDPOINT });\n    try {\n        const page = await browser.newPage();\n        console.log('Connected! Navigating to example.com...');\n        await page.goto('https://example.com');\n        console.log('Scraping page content...');\n        const html = await page.content();\n        console.log(html);\n    } finally {\n        await browser.close();\n    }\n}\n\nmain().catch(err =\u003e console.error(err.stack || err));\n```\n\n\u003e **💡 Learn more about [web scraping with Puppeteer](https://brightdata.com/blog/how-tos/web-scraping-puppeteer)**\n\n### Playwright Example (Python)\n\n```python\nimport asyncio\nfrom playwright.async_api import async_playwright\n\nSBR_WS_CDP = 'wss://brd-customer-\u003cYOUR-USERNAME\u003e-zone-\u003cYOUR-ZONE-NAME\u003e:\u003cYOUR-PASSWORD\u003e@brd.superproxy.io:9222'\n\nasync def run(pw):\n    print('Connecting to Scraping Browser...')\n    browser = await pw.chromium.connect_over_cdp(SBR_WS_CDP)\n    try:\n        page = await browser.new_page()\n        print('Connected! Navigating to example.com...')\n        await page.goto('https://example.com')\n        print('Scraping page content...')\n        html = await page.content()\n        print(html)\n    finally:\n        await browser.close()\n\nasync def main():\n    async with async_playwright() as playwright:\n        await run(playwright)\n\nif __name__ == '__main__':\n    asyncio.run(main())\n```\n\n\u003e **💡 Learn more about [web scraping with Playwright](https://brightdata.com/blog/how-tos/playwright-web-scraping)**\n\n### Selenium Example (JavaScript)\n\n```js\nconst { Builder, Browser } = require('selenium-webdriver');\n\nconst SBR_WEBDRIVER = 'https://brd-customer-\u003cYOUR-USERNAME\u003e-zone-\u003cYOUR-ZONE-NAME\u003e:\u003cYOUR-PASSWORD\u003e@brd.superproxy.io:9515';\n\nasync function main() {\n    console.log('Connecting to Scraping Browser...');\n    const driver = await new Builder().forBrowser(Browser.CHROME).usingServer(SBR_WEBDRIVER).build();\n    try {\n        console.log('Connected! Navigating to example.com...');\n        await driver.get('https://example.com');\n        console.log('Scraping page content...');\n        const html = await driver.getPageSource();\n        console.log(html);\n    } finally {\n        driver.quit();\n    }\n}\n\nmain().catch(err =\u003e console.error(err.stack || err));\n```\n\n\u003e **💡 Learn more about [web scraping with Selenium](https://brightdata.com/blog/how-tos/using-selenium-for-web-scraping)**\n\n## 🔥 Advanced Features\n\n### Debugging with Chrome DevTools\n\nMonitor browser sessions in real-time:\n\n```js\nconst { exec } = require('child_process');\n\nconst chromeExecutable = 'google-chrome';\nconst openDevtools = async (page, client) =\u003e {\n    const frameId = page.mainFrame()._id;\n    const { url: inspectUrl } = await client.send('Page.inspect', { frameId });\n    exec(`\"${chromeExecutable}\" \"${inspectUrl}\"`, error =\u003e {\n        if (error) throw new Error('Unable to open devtools: ' + error);\n    });\n};\n```\n\n### CAPTCHA Solving\n\n```js\nconst client = await page.target().createCDPSession();\nconst { status } = await client.send('Captcha.solve', { detectTimeout: 30000 });\n```\n\n\u003e **🤖 Learn more about our [CAPTCHA Solver](https://github.com/luminati-io/Captcha-solver).**\n\n## 🔄 Automatic IP Rotation \u0026 Unlocking  \nScraping Browser automatically rotates IPs thanks to the integrated [rotating proxies](https://brightdata.com/solutions/rotating-proxies) and handles retries for seamless data collection. \n\n## 💰 Pricing  \n\n### Flexible Plans  \n- **Pay-As-You-Go:** $8.40/GB – No commitment.  \n- **Growth Plan:** $7.14/GB – Ideal for teams.  \n- **Business Plan:** $6.30/GB – For scaling operations.  \n- **Enterprise:** Custom pricing for high-volume needs.  \n\n**Sign up now and get your first deposit matched up to $500!**  \n\n[View Pricing](https://brightdata.com/pricing/scraping-browser)  \n\n## ❓ Frequently Asked Questions  \n\n### What makes Scraping Browser different from a standard headless browser?  \nScraping Browser is a fully managed, GUI-based browser that runs on Bright Data's infrastructure and automatically unlocks even the most protected sites.  \n\n### How does Scraping Browser handle bot detection?  \nIt automates fingerprinting, CAPTCHA solving, retries, and mimics real user behavior to prevent detection.  \n\n### Is Scraping Browser compatible with Puppeteer, Playwright, and Selenium?  \nYes! It seamlessly integrates with all major web automation tools.  \n\n### When should I use Scraping Browser instead of a proxy?  \nUse Scraping Browser when you need JavaScript rendering, interactive actions (clicks, scrolls), and multi-step navigation.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluminati-io%2Fscraping-browser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluminati-io%2Fscraping-browser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluminati-io%2Fscraping-browser/lists"}