CaptchaNo
[ इंटीग्रेशन ]

इसके लिए captcha solver:
Playwright

Job को फ़ेल होने देने के बजाय run के अंदर ही challenge को हल करें। एक काम करता Python उदाहरण, और वे तीन बातें जो तय करती हैं कि आपका token स्वीकार होगा या नहीं।

Playwright · Python
import time
import requests

CAPTCHANO_KEY = "cn-YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {CAPTCHANO_KEY}"}

def solve(task: dict) -> dict:
    """Block until solved; returns e.g. {"token": "...", "userAgent": "..."}."""
    r = requests.post(
        "https://api.captchano.com/v1/solve",
        params={"wait": 60},
        json=task,
        headers=HEADERS,
        timeout=75,
    )
    data = r.json()
    # A solve can outlast the 60 s wait: poll the task until it finishes.
    while data.get("status") in ("queued", "solving"):
        time.sleep(5)
        data = requests.get(
            f"https://api.captchano.com/v1/task/{data['id']}",
            headers=HEADERS,
            timeout=30,
        ).json()
    if data.get("status") != "ready":
        raise RuntimeError(data.get("error") or data)
    return data["solution"]

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    page.goto("https://example.com/register")

    sitekey = page.get_attribute("[data-sitekey]", "data-sitekey")
    solution = solve({"type": "recaptcha_v2", "sitekey": sitekey, "url": page.url})

    page.evaluate(
        "t => document.getElementById('g-recaptcha-response').value = t",
        solution["token"],
    )
    page.click("button[type=submit]")

Token स्वीकार होगा या नहीं, यह किन बातों पर निर्भर है

  1. अपना proxy साथ भेजें। Token उसी exit IP के पीछे बनना चाहिए जो उसे submit करता है। Session-graded सिस्टम के लिए यह अनिवार्य है, केवल ऑप्टिमाइज़ेशन नहीं।
  2. User agent मिलाएँ। Turnstile और कई anti-bot सिस्टम token को एक user agent से बाँध देते हैं। हम इस्तेमाल किया गया user agent लौटाते हैं ताकि आप उसे बिल्कुल वैसा ही दोहरा सकें।
  3. देर से request करें। Token लगभग 120 सेकंड में expire हो जाते हैं। जब आप submit करने के लिए तैयार हों, तभी token माँगें।

Blocking या polling

उदाहरण में ?wait=60 का इस्तेमाल है, इसलिए call पूरा solve लौटाता है और आपका Playwright स्टेप सीधा-सादा रहता है। अगर आप कनेक्शन खुला नहीं रखना चाहते, तो यह parameter हटा दें, लौटाया गया id रख लें, और हर पाँच सेकंड में GET /v1/task/{id} poll करें। जिस token का आपने भुगतान किया है वह दस मिनट तक प्राप्त किया जा सकता है, इसलिए कनेक्शन टूटने पर भी आपका solve बेकार नहीं जाता।

लागत

हर सफल reCAPTCHA v2 solve के लिए $0.00598, असफल solve पर कभी चार्ज नहीं। हर challenge टाइप के लिए कीमतें देखें, या पूरे request फ़ॉर्मेट के लिए API reference देखें।

[ यह कैसे फ़िट होता है ]

Playwright में solve कैसे फ़िट होता है

Playwright के locators से widget पढ़ना आसान है, और page.evaluate token inject करता है। जितना हो सके उतनी देर से solve करें ताकि token की दो मिनट की उम्र navigation में खर्च न हो।

  1. 01
    एक context बनाएँ

    उसी proxy और user agent के साथ browser.new_context जिससे आप submit करेंगे।

  2. 02
    Widget पढ़ें

    page.locator('[data-sitekey]').first, फिर sitekey और callback के लिए get_attribute।

  3. 03
    Solve करें

    type, sitekey, page.url, proxy और user agent के साथ /v1/solve?wait=60 पर POST करें।

  4. 04
    Inject करें, submit करें, जाँचें

    Inject करने के लिए page.evaluate करें, submit पर क्लिक करें, फिर देखें कि पेज असल में क्या दिखा रहा है।

Token को पेज में कैसे डालें

page.evaluate response फ़ील्ड भरता है और token के साथ data-callback फ़ंक्शन को call करता है।

[ आम गलतियाँ ]

इंटीग्रेशन आमतौर पर कहाँ गलत होते हैं

गलत चीज़ की जाँच

जो script submit पर क्लिक करने के बाद 'solved' log कर देती है, उसने कुछ भी verify नहीं किया। पेज की success state पर assert करें।

Context के स्तर पर proxy

Proxy उस context पर सेट करें जिसे आप पेज के लिए इस्तेमाल करते हैं, और वही proxy solve के साथ भेजें।

JavaScript में register किया गया callback

अगर पेज grecaptcha.render को call करता है, तो callback का नाम पेज की अपनी script में ढूँढें।

[ FAQ ]

Playwright captcha: अक्सर पूछे सवाल

क्या Playwright बिना solver के captcha bypass कर सकता है?

भरोसेमंद तरीके से नहीं। Playwright browser को automate करता है लेकिन image challenges का जवाब नहीं दे सकता। Audio-transcription libraries कभी-कभी काम करती हैं, लेकिन वे audio विकल्प मिलने पर निर्भर हैं, जो अक्सर automated sessions को नहीं दिया जाता।

क्या यह Node, Java और .NET वाले Playwright के साथ काम करता है?

हाँ। उदाहरण Python में है, लेकिन हर Playwright language binding में flow वही HTTP call और वही page.evaluate है।

Playwright से अपने खुद के फ़ॉर्म कैसे टेस्ट करूँ?

CI में अपना खुद का captcha solve न करें। Provider की test keys इस्तेमाल करें, जैसे Google की reCAPTCHA test site key या Cloudflare की Turnstile test keys, ताकि आपके टेस्ट तेज़ और मुफ़्त रहें।

Playwright में reCAPTCHA v3 का क्या?

v3 में भरने के लिए कोई widget नहीं होता। पेज के action नाम के साथ v3 token request करें और उसे वहाँ भेजें जहाँ पेज अपना token भेजता है, आमतौर पर किसी फ़ॉर्म फ़ील्ड या request body में।

[ आगे पढ़ें ]

उपयोगी गाइड

बनाने के लिए तैयार?

3 दिन के free trial से शुरू करें, फिर ट्रैफ़िक बढ़ने के साथ हर सफल solve के हिसाब से भुगतान करें। Trial के लिए कार्ड की ज़रूरत नहीं।

हमारे plans देखें
क्या आप एक AI agent हैं? सेटअप के विकल्प देखें →