CAPTCHA omzeilen met Python#

Over CAPTCHA#

CAPTCHA is de afkorting van "Completely Automated Public Turing test to tell Computers and Humans Apart", een Turing-test die volledig automatisch onderscheid maakt tussen computers en mensen. Het is een test die wordt gebruikt om te bevestigen of een websitebezoeker een echte persoon is en geen geautomatiseerd programma zoals een bot of malware. CAPTCHA wordt meestal als afbeelding aan de gebruiker gepresenteerd en vereist dat de gebruiker de woorden of cijfers die hij ziet in een tekstvak invoert. Bij dit soort tests wordt gebruik gemaakt van de menselijke herkenning van afbeeldingen en tekst om de veiligheid van de website te garanderen en kwaadaardige aanvallen en geautomatiseerde handelingen te voorkomen.

Milieuvoorbereiding#

U kunt de NextCaptcha Python SDK installeren met pip:
pip install nextcaptcha-python

gebruik#

Om de NextCaptcha Python SDK te gaan gebruiken, moet u eerst de API-sleutel (clientKey) verkrijgen via het NextCaptcha-dashboard. U kunt vervolgens een NextCaptchaAPI-instantie maken:
from nextcaptcha import NextCaptchaAPI
 
api = NextCaptchaAPI(client_key="YOUR_CLIENT_KEY")
Nu kunt u API-objecten gebruiken om verschillende soorten captcha's op te lossen. Om de reCAPTCHA v2-uitdaging op te lossen, gebruikt u de recaptchav2-methode:
result = api.recaptchav2(website_url="https://example.com", website_key="SITE_KEY")
ReCAPTCHA v2 Enterprise oplossen Om reCAPTCHA v2 Enterprise-uitdagingen op te lossen, gebruikt u de recaptchav2enterprise-methode:
result = api.recaptchav2enterprise(website_url="https://example.com", website_key="SITE_KEY")
ReCAPTCHA v3 oplossen Om reCAPTCHA v3-uitdagingen op te lossen, gebruikt u de recaptchav3-methode:
result = api.recaptchav3(website_url="https://example.com", website_key="SITE_KEY")
ReCAPTCHA Mobile oplossen Om de reCAPTCHA Mobile-uitdaging op te lossen, gebruikt u de recaptcha_mobile-methode:
result = api.recaptcha_mobile(app_key="APP_KEY")
hCaptcha oplossen Om hCaptcha-uitdagingen op te lossen, gebruikt u de hcaptcha-methode:
result = api.hcaptcha(website_url="https://example.com", website_key="SITE_KEY")
hCaptcha Enterprise oplossen Om hCaptcha Enterprise-uitdagingen op te lossen, gebruikt u de hcaptcha_enterprise-methode:
result = api.hcaptcha_enterprise(website_url="https://example.com", website_key="SITE_KEY")
FunCaptcha oplossen Om de FunCaptcha-uitdaging op te lossen, gebruik je de funcaptcha-methode:
result = api.funcaptcha(website_public_key="WEBSITE_PUBLIC_KEY")
Accountsaldo controleren Om het saldo van uw NextCaptcha-account te controleren, gebruikt u de get_balance-methode:
balance = api.get_balance()
print(f"Account balance: {balance}")
Hier is een compleet voorbeeld van het oplossen van een reCAPTCHA v2-uitdaging met behulp van de NextCaptcha Python SDK:
from nextcaptcha import NextCaptchaAPI
 
CLIENT_KEY = "YOUR_CLIENT_KEY"
WEBSITE_URL = "https://example.com"
WEBSITE_KEY = "SITE_KEY"
 
api = NextCaptchaAPI(client_key=CLIENT_KEY)
result = api.recaptchav2(website_url=WEBSITE_URL, website_key=WEBSITE_KEY)
 
if result["status"] == "ready":
    print(f"reCAPTCHA solved: {result['solution']}")
else:
    print(f"Failed to solve reCAPTCHA: {result['error']}")

Foutafhandeling#

Als er een fout in de verificatiecode zit, retourneert de SDK een woordenboek met foutinformatie. In het statusveld kunt u zien of de aanvraag is gelukt. Als de status "Gereed" is, is de verificatiecode succesvol opgelost en is de oplossing beschikbaar in het oplossingsveld. Als de status "Mislukt" is, bevat het foutveld een beschrijving van de fout