Python HTTPX से reCAPTCHA टोकन सबमिट करें

solvethree द्वारापढ़ने में 3 मिनट

लक्ष्य को POST भेजते समय solution.token, सफल सॉल्व प्रॉक्सी और लौटाई गई ब्राउज़र पहचान का उपयोग करें। एप्लिकेशन की कुकीज़ एक ही HTTPX क्लाइंट में रखें; मान्य टोकन उसकी सेशन या CSRF आवश्यकताओं की जगह नहीं लेता।

इस पेज पर

सफल प्रॉक्सी के ज़रिए तैयार टोकन भेजें

pip install httpx से HTTPX इंस्टॉल करें। उदाहरण आधिकारिक Python SDK का भी उपयोग करता है; अगर वह इंस्टॉल नहीं है, तो Python SDK सेटअप देखें।

परिणाम कहाँ से आता है, यह दिखाने के लिए उदाहरण में सॉल्व कॉल शामिल है। अगर आपके पास पहले से ready SDK परिणाम है, तो मूल request के साथ उसे result के रूप में दोबारा उपयोग करें। केवल उसका टोकन भेजने के लिए दूसरा टास्क न बनाएँ।

  • SOLVETHREE_API_KEY को अपनी वर्कस्पेस API कुंजी पर और SOLVETHREE_PROXY को प्रॉक्सी URL पर सेट करें। API कुंजी सर्वर पर रखें।
  • accounts.example.com, login ऐक्शन और सबमिशन URL को अपने इच्छित लक्ष्य के मानों से बदलें। होस्टनेम के लिए आपके वर्कस्पेस में एक सक्रिय साइट प्रोफ़ाइल आवश्यक है; साइट प्रोफ़ाइल सेटअप देखें।
  • फ़ॉर्म फ़ील्ड को एप्लिकेशन के वास्तविक अनुरोध के अनुसार बदलें। उदाहरण केवल CAPTCHA फ़ील्ड भेजता है, पूरा लॉगिन फ़ॉर्म नहीं।
HTTPX · प्रॉक्सी और लौटाई गई ब्राउज़र पहचान का दोबारा उपयोग करें
# pip install httpx and the official solvethree SDK wheel.
import os
import httpx
from solvethree import Solvethree, successful_proxy

request = {"site": "accounts.example.com", "action": "login", "proxy": os.environ["SOLVETHREE_PROXY"]}
result = Solvethree(os.environ["SOLVETHREE_API_KEY"]).solve(request, timeout=180)
solution = result["solution"]
proxy = successful_proxy(request, result)
if proxy is None:
    raise RuntimeError("No valid successful proxy")
with httpx.Client(proxy=proxy, timeout=30, follow_redirects=False, trust_env=False) as target:
    # Use this client's cookie jar for any required application session first.
    response = target.post("https://accounts.example.com/login",
        data={"g-recaptcha-response": solution["token"]},
        headers={"User-Agent": solution["userAgent"], "sec-ch-ua": solution["secChUa"]})
    print("Application HTTP status:", response.status_code)
    # Check the application's actual response and required CSRF/session fields.

successful_proxy(request, result) सबमिशन के लिए दोबारा उपयोग की जाने वाली प्रॉक्सी चुनता है। वह जाँच बनाए रखें जो कोई मान्य प्रॉक्सी न लौटने पर सबमिशन रोक देती है। HTTPX के वर्तमान एकवचन पैरामीटर proxy= का उपयोग करें, proxies= का नहीं। trust_env=False सेट करने से एनवायरनमेंट की प्रॉक्सी सेटिंग स्पष्ट रूप से चुने गए रूट को नहीं बदल पातीं।

कुकीज़, ब्राउज़र पहचान और फ़ॉर्म फ़ील्ड साथ रखें

अगर एप्लिकेशन को सेशन स्थापित करने या CSRF मान प्राप्त करने के लिए शुरुआती पेज अनुरोध चाहिए, तो POST से पहले उसी HTTPX क्लाइंट में वह अनुरोध करें। उसका कुकी जार अलग-अलग अनुरोधों के बीच कुकीज़ बनाए रखता है। किसी अलग क्लाइंट में वह सेशन अपने-आप उपलब्ध नहीं होगा।

उन शुरुआती अनुरोधों के लिए भी लौटाए गए userAgent और secChUa का उपयोग करें, किसी असंबंधित ब्राउज़र पहचान का नहीं। उदाहरण उन्हें POST पर User-Agent और sec-ch-ua के रूप में देता है। समाधान को उसके इच्छित लक्ष्य पर भेजते समय इन हेडर और सफल प्रॉक्सी को एक समान रखें।

data= फ़ॉर्म डेटा भेजता है। यहाँ g-recaptcha-response को solution.token मिलता है; उसे टास्क ID या पूरी समाधान डिक्शनरी नहीं मिलनी चाहिए। फ़ील्ड का नाम लक्ष्य के वास्तविक अनुरोध से मिलाएँ और उसी सबमिशन में सभी आवश्यक क्रेडेंशियल, छिपे हुए फ़ील्ड और CSRF मान शामिल करें।

सबमिशन को सफल मानने से पहले रीडायरेक्ट की जाँच करें

follow_redirects=False पहले एप्लिकेशन रिस्पॉन्स को दिखने देता है। अगर वह रीडायरेक्ट करता है, तो उसी क्लाइंट से एप्लिकेशन के अपेक्षित अगले चरण का स्पष्ट रूप से अनुसरण करने से पहले उसकी स्थिति और गंतव्य की जाँच करें। टोकन को अपने-आप किसी दूसरे URL पर दोबारा न भेजें।

प्रिंट किया गया HTTP स्टेटस केवल एक शुरुआती संकेत है। लक्ष्य ने अनुरोध स्वीकार किया या नहीं, यह तय करने के लिए रिस्पॉन्स बॉडी, रीडायरेक्ट गंतव्य या एप्लिकेशन की परिणामी स्थिति जाँचें। 200 रिस्पॉन्स या रीडायरेक्ट सफलता या त्रुटि, दोनों में से किसी फ़्लो का संकेत हो सकता है; solvethree की ready स्थिति का अर्थ है कि समाधान बन गया है, यह नहीं कि लक्ष्य ने उसे स्वीकार कर लिया है।

अपना पहला टास्क चलाएँ।

$5 वर्कस्पेस क्रेडिट के साथ शुरुआत करें।

वर्कस्पेस बनाएँ
Python HTTPX से reCAPTCHA टोकन सबमिट करें · solvethree