अपडेट पर वापस जाएँ
New releaseSep 18, 2026

invisible_playwright v0.20.0

Playwright जिसे anti-bots देख नहीं सकते, इसलिए कोई captchas नहीं: वही API, anti-detect stealth headless Firefox, undetected fingerprint, bot detection को bypass, Python web scraping और browser automation।

साझा करें
invisible_playwright

Playwright एंटी-बॉट्स और कैप्चा द्वारा पकड़ा जाता है।
यह एक एंटी-डिटेक्ट Firefox पर चलता है जिसमें अनडिटेक्टेड फिंगरप्रिंट है, और आपके मौजूदा Playwright कोड के साथ संगत है।

invisible_playwright - 5/5 detection suites passed

यह कैसे काम करता है

एंटी-बॉट्स दो सवाल पूछते हैं, और reCAPTCHA, hCaptcha तथा Cloudflare Turnstile जवाबों को स्कोर करते हैं। invisible_playwright दोनों का जवाब हाँ में देता है।

1. क्या यह एक असली ब्राउज़र है? हाँ। यह Firefox है, जिसे C++ सोर्स स्तर पर पैच किया गया है।

  • ब्राउज़र फिंगरप्रिंट इंजन के अंदर सेट होता है, पेज में इंजेक्ट नहीं किया जाता: navigator, screen, GPU/WebGL, canvas, fonts, audio, WebRTC, timezone, network। हेडलेस या हेडेड, दोनों में समान मान।
  • कोई JS शिम नहीं, कोई ओवरराइड नहीं, पढ़ने के लिए कोई सीम नहीं।

2. क्या इसे कोई असली व्यक्ति इस्तेमाल कर रहा है? हाँ। ड्राइवर में क्रियाएँ मानवीय बनाई गई हैं।

  • हर क्लिक, होवर और ड्रैग एक प्राकृतिक माउस पथ का अनुसरण करता है, मानवीय टाइमिंग के साथ, कोई टेलीपोर्टिंग कर्सर नहीं।
  • प्रत्येक इनपुट असली माउस के समान बाइट-दर-बाइट है: असली इनपुट स्रोत, प्रेशर, ट्रस्टेड इवेंट्स।

इंस्टॉल

pip install invisible-playwright
python -m invisible_playwright fetch      # one-time download, sha256-verified: 240 MB (Windows) / 262 MB (Linux x86_64) / 253 MB (Linux arm64), about 550 MB unpacked

Python 3.11 या नया आवश्यक है।

समर्थित प्लेटफ़ॉर्म: Windows x86_64, Linux x86_64 / arm64।


उपयोग

प्रति सत्र रैंडम फिंगरप्रिंट

Playwright का API, sync और async, बिना कोई कोड बदले। वही ऑब्जेक्ट, वही कॉल, वही रिटर्न वैल्यू। कुछ सतहें दायरे से बाहर हैं - tracing, HAR, CDP, API request context - और हर एक चुपचाप गलत व्यवहार करने के बजाय एक वाक्य के साथ मना कर देती है कि क्यों। अगर आप पहले से Playwright इस्तेमाल करते हैं, तो स्विच करना दो लाइनों का काम है:

- from playwright.sync_api import sync_playwright
- with sync_playwright() as p:
-     browser = p.firefox.launch()
+ from invisible_playwright import InvisiblePlaywright
+ with InvisiblePlaywright() as browser:

हर सत्र को एक अलग फिंगरप्रिंट (GPU, audio, fonts, screen, ~200 फ़ील्ड) और Bezier-कर्व माउस मोशन मिलता है।

Sync

from invisible_playwright import InvisiblePlaywright

with InvisiblePlaywright(proxy={"server": "socks5://...", "username": "u", "password": "p"}) as browser:
    page = browser.new_page()
    page.goto("https://example.com")
    page.click("#submit")   # mouse arcs to the button on a Bezier curve

Async

from invisible_playwright.async_api import InvisiblePlaywright

async with InvisiblePlaywright(proxy={"server": "socks5://...", "username": "u", "password": "p"}) as browser:
    page = await browser.new_page()
    await page.goto("https://example.com")
    await page.click("#submit")

browser ऑब्जेक्ट एक playwright.sync_api.Browser / playwright.async_api.Browser है - हर Playwright मेथड वैसे ही काम करता है।

रन को रीप्ले करने के लिए seed लॉग करें:

sf = InvisiblePlaywright()
with sf as browser:
    print("seed =", sf.seed)
    # ...

पुनरुत्पादनीय फिंगरप्रिंट

with InvisiblePlaywright(seed=42) as browser:
    ...   # same GPU, same canvas hash, same audio context, every run

प्रॉक्सी

proxy = {
    "server": "socks5://gate.example.com:1080",
    "username": "user",
    "password": "pass",
}
with InvisiblePlaywright(proxy=proxy) as browser:
    ...

समर्थित स्कीम: socks5, socks4, http, https। DNS डिफ़ॉल्ट रूप से प्रॉक्सी के माध्यम से रूट होता है, कोई लोकल लीक नहीं।

टाइमज़ोन

ब्राउज़र टाइमज़ोन timezone= का अनुसरण करता है:

# default: timezone is auto-derived from the egress IP (proxy egress if a
# proxy is set, otherwise the host's own public IP)
with InvisiblePlaywright(proxy=proxy) as browser:
    ...

# explicit IANA zone always wins, the only way to force a specific zone
with InvisiblePlaywright(proxy=proxy, timezone="America/New_York") as browser:
    ...

विशिष्ट फिंगरप्रिंट फ़ील्ड पिन करना

डिफ़ॉल्ट रूप से सब कुछ seed से आता है। विशिष्ट मानों को बाध्य करने के लिए, जबकि बाकी seed-व्युत्पन्न रहता है:

with InvisiblePlaywright(
    seed=42,
    pin={
        "gpu.renderer": "ANGLE (AMD, Radeon R9 200 Series Direct3D11 vs_5_0 ps_5_0, D3D11)",
        "gpu.vendor":   "Google Inc. (AMD)",
        "screen.width":  2560,
        "screen.height": 1440,
        "hardware.concurrency": 16,
    },
) as browser:
    ...

एक GPU पिन मान्य पर्सोना में से एक चुनता है, बजाय एक मुक्त स्ट्रिंग सेट करने के, क्योंकि ~81 getParameter मान और एक्सटेंशन सूची रेंडरर नाम के साथ चलते हैं और एक डिटेक्टर उन्हें इसके विरुद्ध क्रॉस-चेक करता है। पूल में मौजूद न होने वाला नाम त्रुटि उठाता है, और त्रुटि उन नामों को सूचीबद्ध करती है जो मौजूद हैं।

पिन करने योग्य कुंजियों की पूरी सूची, पिनिंग Bayesian सैंपलर के साथ कैसे इंटरैक्ट करती है, और सामान्य पैटर्न docs/pinning.md में हैं।


CLI

इंस्टॉल किया गया कमांड invisible-playwright है, हाइफ़न के साथ। python -m invisible_playwright समान रूप से काम करता है और PATH पर कुछ भी आवश्यक नहीं है।

invisible-playwright fetch    # download the engine if missing, check every cached
                              # one against the seal, print the path
invisible-playwright version  # wrapper, core and engine versions, and where the
                              # engine is cached

दस्तावेज़ीकरण, गाइड और तुलनाएँ

अगर आप स्क्रिप्ट करने के बजाय प्रॉम्प्ट करना पसंद करते हैं। यह पेज इंजन है, एक Python लाइब्रेरी के रूप में। बिना कोड लिखे इसे इस्तेमाल करने के दो तरीके, दोनों एक लाइन के: आपके पास पहले से मौजूद MCP क्लाइंट से (Claude Code, Claude Desktop, Cursor), claude mcp add stealth -- uvx aihawk, देखें the MCP server page; या एक इंटरफ़ेस और एक मॉडल सहित, जिसके लिए केवल एक OpenRouter कुंजी चाहिए, uvx aihawk ui --openrouter-key sk-or-..., देखें AIHawk। नीचे वही इंजन है, और दूसरा पहले का क्लाइंट है।

यह सब the wiki में बेहतर पढ़ा जाता है, और खोजा जा सकता है, जो एक सपाट सूची के बजाय चार अनुभागों में व्यवस्थित है:

  • Documentation - इंस्टॉलेशन, सादे Playwright से दो-लाइन स्विच, प्रॉक्सी/टाइमज़ोन कॉन्फ़िगरेशन, विशिष्ट फ़ील्ड पिन करना, CLI।
  • Guides - डिटेक्शन वास्तव में कैसे काम करता है, सात समूहों में: ब्राउज़र पहचान, canvas/WebGL/fonts/ audio, नेटवर्क और WebRTC, ऑटोमेशन लेयर, AI एजेंट, सोर्स से समझाए गए डिटेक्टर स्वयं, और परीक्षण।
  • Comparisons - Camoufox, Patchright, nodriver और playwright-stealth के विरुद्ध, और सामान्य रूप से Chromium के बजाय Firefox के पक्ष में तर्क।
  • Integrations - Scrapy, Crawlee, Robot Framework, CodeceptJS, टेस्ट रनर, Playwright MCP, और वे फ्रेमवर्क जिनमें यह फिट नहीं होता, नाम के साथ।

श्रेणियाँ