Tutoriels

n8n + CaptchaAI : flux de travail de résolution de CAPTCHA sans code

n8n est un outil d'automatisation de flux de travail open source avec prise en charge native des boucles, ce qui le rend plus flexible que Zapier pour la résolution de CAPTCHA. Vous pouvez créer un flux de travail de soumission – sondage – qui réessaye automatiquement jusqu'à ce que la résolution soit terminée.


Présentation du flux de travail

Manual Trigger / Cron
    ↓
HTTP Request: Submit CAPTCHA
    ↓
Wait: 10 seconds
    ↓
Loop: Poll until solved
    ├── HTTP Request: Get result
    ├── IF: status == 1? → Exit loop
    └── Wait: 5 seconds → Loop again
    ↓
HTTP Request: Use token

Nœud 1 : Envoyer un CAPTCHA

Ajoutez un nœud Requête HTTP :

Paramètre Valeur
Méthode POST
URL https://ocr.captchaai.com/in.php
Type de contenu du corps Form URL Encoded

Paramètres corporels :

Nom Valeur
key {{ $credentials.captchaaiApiKey }} ou codez en dur votre clé
method userrecaptcha
googlekey 6Le-SITEKEY
pageurl https://example.com
json 1

Réponse :

{
  "status": 1,
  "request": "71823456"
}

Nœud 2 : Attendez

Ajoutez un nœud Attendez :

Paramètre Valeur
Temps d'attente 10
Unité Seconds

Cela donne au solveur le temps de commencer le traitement avant la première interrogation.


Nœud 3 : Résultat du sondage (avec boucle)

n8n prend en charge les boucles via le nœud Loop Over Items ou en connectant la fausse sortie d'un nœud IF à un nœud précédent.

Option A : boucle IF simple

Ajoutez un nœud Requête HTTP (Sondage) :

Paramètre Valeur
Méthode GET
URL https://ocr.captchaai.com/res.php
Paramètres de requête key, action=get, id={{ $json.request }}, json=1

Connectez-le à un nœud IF :

État Valeur
Valeur 1 {{ $json.status }}
Fonctionnement Equal
Valeur 2 1
  • Vraie sortie → Passez à l'action suivante (utilisez le jeton)
  • Fausse sortieAttendez (5 secondes) → retour au nœud d'interrogation

Option B : nœud de code

Pour plus de contrôle, utilisez un nœud Code :

const apiKey = 'YOUR_API_KEY';
const taskId = $input.first().json.request;

for (let i = 0; i < 24; i++) {
  await new Promise(r => setTimeout(r, 5000));

  const resp = await fetch(
    `https://ocr.captchaai.com/res.php?key=${apiKey}&action=get&id=${taskId}&json=1`
  );
  const data = await resp.json();

  if (data.status === 1) {
    return [{ json: { token: data.request, taskId } }];
  }
  if (data.request !== 'CAPCHA_NOT_READY') {
    throw new Error(`CaptchaAI error: ${data.request}`);
  }
}

throw new Error(`Task ${taskId} timed out`);

Nœud 4 : Utiliser le jeton

Ajoutez un autre nœud HTTP Request pour soumettre le formulaire avec le jeton résolu :

Paramètre Valeur
Méthode POST
URL https://target-site.com/submit
Type de contenu du corps Form URL Encoded

Les paramètres du corps incluent les données de votre formulaire plus :

Nom Valeur
g-recaptcha-response {{ $json.token }}

Stocker la clé API en toute sécurité

Utilisez le système Credentials de n8n :

  1. Allez dans Credentials → Add Credential → Header Auth
  2. Nom : CaptchaAI API Key
  3. Conservez la clé en toute sécurité

Ou utilisez des variables d'environnement :

# In your n8n environment
export CAPTCHAAI_API_KEY="your_key_here"

Référence dans les nœuds : {{ $env.CAPTCHAAI_API_KEY }}


Flux de travail CAPTCHA d’image

Pour les CAPTCHA d'image, ajustez le nœud Soumettre :

Nom Valeur
method base64
body Image codée en base64 (à partir d'un nœud ou d'une URL précédente)

Pour convertir une URL d'image en base64 dans n8n, ajoutez un nœud Code avant la soumission :

const imageUrl = $input.first().json.imageUrl;
const resp = await fetch(imageUrl);
const buffer = Buffer.from(await resp.arrayBuffer());
const base64 = buffer.toString('base64');

return [{ json: { imageBase64: base64 } }];

Flux de travail de vérification du solde

Créez un workflow distinct qui s'exécute selon un planning :

Cron (daily at 9 AM)
    ↓
HTTP Request: GET res.php?action=getbalance
    ↓
IF: balance < 5
    ↓
Slack / Email: "CaptchaAI balance low: $X.XX"

n8n vs Zapier pour la résolution de CAPTCHA

Caractéristique n8n Zapier
Prise en charge de Loop/retry Natif (boucles IF, nœud de boucle) Limité (chemins uniquement)
Option auto-hébergée Oui (gratuit) Non (cloud uniquement)
Nœuds de code JavaScript complet Limité
Coût Cloud gratuit (auto-hébergé) ou payant Payé (par tâche)
Facilité de configuration Modéré Facile

n8n est meilleur pour les flux de travail CAPTCHA en raison de sa prise en charge des boucles et de ses nœuds de code.


Dépannage

Problème Parce que Corriger
La boucle de sondage s'exécute indéfiniment Aucune limite d'itération maximale Ajouter une variable compteur, pause après 24 itérations
CAPCHA_NOT_READY sans escale Temps d'attente trop court avant le premier sondage Augmentez l'attente initiale à 15-20 secondes
Jeton non disponible dans le nœud suivant Mauvais chemin d'expression Vérifiez que {{ $json.token }} correspond à la sortie
Identifiants introuvables Variable d'environnement non définie Redémarrez n8n après avoir défini les variables d'environnement

FAQ

Puis-je traiter plusieurs CAPTCHA dans un seul flux de travail ?

Oui. Utilisez le nœud Split In Batches pour traiter plusieurs éléments, chacun avec son propre flux de soumission, de sondage et d'utilisation.

N8n prend-il en charge Turnstile ?

Oui. Remplacez method par turnstile et utilisez sitekey au lieu de googlekey.


Intégrez la résolution CAPTCHA dans vos flux de travail n8n

Obtenez votre clé API surcaptchaai.com.


Guides associés

Les commentaires sont désactivés pour cet article.