इसके लिए captcha solver:
Playwright
Job को फ़ेल होने देने के बजाय run के अंदर ही challenge को हल करें। एक काम करता Python उदाहरण, और वे तीन बातें जो तय करती हैं कि आपका token स्वीकार होगा या नहीं।
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 स्वीकार होगा या नहीं, यह किन बातों पर निर्भर है
- अपना proxy साथ भेजें। Token उसी exit IP के पीछे बनना चाहिए जो उसे submit करता है। Session-graded सिस्टम के लिए यह अनिवार्य है, केवल ऑप्टिमाइज़ेशन नहीं।
- User agent मिलाएँ। Turnstile और कई anti-bot सिस्टम token को एक user agent से बाँध देते हैं। हम इस्तेमाल किया गया user agent लौटाते हैं ताकि आप उसे बिल्कुल वैसा ही दोहरा सकें।
- देर से 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 में खर्च न हो।
- 01एक context बनाएँ
उसी proxy और user agent के साथ browser.new_context जिससे आप submit करेंगे।
- 02Widget पढ़ें
page.locator('[data-sitekey]').first, फिर sitekey और callback के लिए get_attribute।
- 03Solve करें
type, sitekey, page.url, proxy और user agent के साथ /v1/solve?wait=60 पर POST करें।
- 04Inject करें, submit करें, जाँचें
Inject करने के लिए page.evaluate करें, submit पर क्लिक करें, फिर देखें कि पेज असल में क्या दिखा रहा है।
Token को पेज में कैसे डालें
page.evaluate response फ़ील्ड भरता है और token के साथ data-callback फ़ंक्शन को call करता है।
इंटीग्रेशन आमतौर पर कहाँ गलत होते हैं
जो script submit पर क्लिक करने के बाद 'solved' log कर देती है, उसने कुछ भी verify नहीं किया। पेज की success state पर assert करें।
Proxy उस context पर सेट करें जिसे आप पेज के लिए इस्तेमाल करते हैं, और वही proxy solve के साथ भेजें।
अगर पेज grecaptcha.render को call करता है, तो callback का नाम पेज की अपनी script में ढूँढें।
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 के लिए कार्ड की ज़रूरत नहीं।