Menu

Comment contourner tout captcha avec les tâches AntiGate

Une nouvelle version vidéo du tutoriel AntiGate tasks est disponible ici.

Après des années de recherche et développement, nous introduisons une solution universelle pour aider vos robots à passer les portails captcha construites par les humains. Nous l'appelons "AntiGate", et ce sont les modèles de scénario que notre main-d'œuvre humaine utilise pour exécuter des tâches exactes.

À un moment donné, votre application rencontre une "passerelle" de protection d'automatisation avec un nouveau type de captcha, des scripts de navigateur obscurcis, ou quoi que ce soit d'autre. C'est là qu'interviennent nos tâches AntiGate. Vous déléguez l'un de nos travailleurs pour créer une session de navigateur humaine réelle.
  • Tout d'abord, choisissez un modèle. Vous pouvez utiliser un modèle existant ou créer le vôtre. Un modèle est un ensemble d'instructions étape par étape que les travailleurs exécutent.
  • Deuxièmement, fournissez toutes les données supplémentaires dont le modèle a besoin, comme la valeur d'une entrée à remplir, le sélecteur CSS d'une entrée ou l'adresse Web vers laquelle nous devons naviguer. Nous parlerons un peu plus des modèles dans un instant.
  • Troisièmement, et facultatif - les proxys. Vous en avez besoin si un site Web associe chaque cookie de session à une adresse IP exacte.
Avec ces trois éléments, vous créez une tâche avec notre API. Un travailleur navigue sur votre site web avec notre plugin de navigateur spécial et exécute toutes les étapes du scénario manuellement ou automatiquement. À la fin du script, nous récupérons toutes les informations de session du navigateur, comme cookies, valeurs de stockage local, empreinte digitale du navigateur, et les transmettons à votre application. Il ne vous reste plus qu'à utiliser ces données pour restaurer la session du travailleur et poursuivre les opérations comme s'il s'agissait d'un utilisateur humain. C'est incroyable, non ? :)

Quels sont les modèles AntiGate?

Un modèle AntiGate définit un scénario exact que nos travailleurs doivent traverser. Les modèles se composent d'étapes, qui sont toutes exécutées de manière séquentielle. Lorsqu'une étape est terminée, le travailleur passe à la suivante. Lorsque toutes les étapes sont terminées, la tâche est terminée et un snapshot de la session de travail est pris et renvoyé à votre application.

Quel genre d'étapes y a-t-il?
  • Fill a text input field automatically or manually.
  • Attendre qu'un exemple de texte apparaisse (ou disparaisse) sur la page.
  • Attendez qu'un élément DOM défini par CSS apparaisse (ou disparaisse de) la page.
  • Attendez qu'un mot-clé apparaisse (ou disparaisse) dans l'adresse URL du navigateur actuel du travailleur.
Le champ de texte "description pour les travailleurs" du modèle peut décrire toutes les autres étapes que vous attendez du travailleur. Par exemple: "Résolvez un captcha et appuyez sur le bouton Soumettre".
Voyons un exemple. Allez vers le Centre des développeurs et créez un modèle gratuit pour les tests. et créez un modèle gratuit pour les tests. Ne vous inquiétez pas, vous ne cassez rien!
Cliquez pour ajouter le modèle
Cliquez pour charger un exemple
Notez la section des étapes
Vous avez chargé un exemple de démonstration. Vous pouvez l'enregistrer dans votre compte et le tester vous-même plus tard. Faisons connaissance avec la liste complète des propriétés du modèle:
  • Nom du modèle. Une fois enregistré, il ne peut plus être modifié. Lorsque vous le publiez, votre modèle devient disponible dans l'API sous ce nom.
  • Description pour les clients. Des modèles publics sont disponibles dans notre catalogue de modèles.
  • Description pour les travailleurs. C'est le texte que nos travailleurs voient en haut de la page.
    Exemple d'interface des travailleurs
  • Variables. Il s'agit d'une liste de noms de variables que vous pouvez ajouter pour les utiliser dans les étapes à la place des valeurs permanentes. Dans cet exemple, nous avons 2 variables, "login" et "password". Ces deux variables sont utilisées dans les étapes 1 et 2 pour remplir le formulaire d'inscription à la démonstration. De cette façon, vous pouvez fournir ces valeurs via l'API au lieu de coder en dur un login et un mot de passe permanents dans le modèle.
    Variables utilisées aux étapes 1 et 2
  • Démarches des travailleurs. Vous pouvez ici éditer et modifier l'ordre des étapes du scénario. Dans notre exemple, nous procédons comme suit :
    1. Remplissez automatiquement le champ de texte avec le sélecteur CSS "#login". La valeur du champ de texte est définie par la variable "login".
    2. Remplissez automatiquement le champ de texte avec le sélecteur CSS "#password". La valeur du champ de texte est définie par la variable "password".
    3. Attendez qu'un texte de contrôle apparaisse sur la page. Il est fixé en permanence à la valeur "Test passé avec login".

Vous pouvez maintenant enregistrer le modèle et il apparaîtra dans votre centre de développement. Notez qu'il a le statut "Sandbox", ce qui signifie qu'il n'est disponible que pour vous et non disponible dans l'API. À partir de là, vous pouvez essayer de tester votre modèle nouvellement créé comme si vous étiez votre propre travailleur.

Modèles de test

À ce stade, vous devrez utiliser le navigateur Chrome et nous vous recommandons de créer un nouveau profil d'utilisateur dans ce navigateur, car nous devrons installer notre plugin, qui a accès aux cookies du profil.
Exemple d'interface des travailleurs
Ensuite, sur votre carte de modèle, appuyez sur le bouton "test".
Suivez les instructions et téléchargez le plugin pour votre plateforme. Ensuite, rechargez la page pour qu'elle prenne effet, remplissez les variables "login" et "password" avec des valeurs aléatoires et appuyez sur le bouton "Lancer le test". Une nouvelle page devrait s'ouvrir et ressembler à ceci :

Près de la barre d'adresse, il y a une barre bleue que le plugin ajoute en haut de la page cible. C'est ainsi que les travailleurs connaissent leurs affectations et contrôlent l'exécution de la tâche.

Aussi, notez que les champs de connexion et de mot de passe sont masqués lorsque vous les remplissez avec des variables. Ceci est intentionnel. Bien que les travailleurs aient un accès complet aux données de la tâche via la console des développeurs, 99.99% d'entre eux ne prennent pas la peine d'examiner ce qui se passe dans les coulisses.
À la résolution du Recaptcha, appuyez sur le bouton "Se connecter". The last step of the template, "WAIT_CONTROL_TEXT_PRESENT", will be passed. The plugin searches for the control phrase "Test passed with login", which is permanently defined in your template. The tab closes automatically and the session snapshot is displayed in the results field.
Exemple de résultats

Les mêmes données de snapshot peuvent être reçues de l'API. Mais pour rendre votre modèle disponible dans l'API, nous devons d'abord le publier.

Modèles de publication

Vous avez 2 options lors de la publication d'un modèle : le rendre privé ou public.
  • Les modèles privés sont disponibles uniquement avec votre clé API. Les autres clients ne peuvent pas les utiliser. Coût de la révision et de la publication: $1.
  • Les modèles publics sont disponibles pour tout le monde. Vous gagnerez %5 sur les dépenses de chaque client avec ce modèle. Vous devrez laisser quelques contacts pour que nos clients vous demandent de l'aide si quelque chose ne va pas avec votre modèle. Coût de la révision et de la publication: $1.
Nous examinons attentivement tous les modèles. Vous devez suivre certaines exigences de base pour passer avec succès en mode production:
  • Aucune activité illégale de quelque nature que ce soit.
  • Les modèles ne doivent pas dupliquer ceux existants.
  • Ne soumettez pas de modèles factices ou de test.
  • Fournissez un exemple d'adresse Web et des valeurs de variable à examiner. Nous lancerons un test, et toutes les étapes devraient se terminer avec succès.

Requêtes API

Une demande de création de tâche à l'API pour le modèle AntiGate ci-dessus semblerait aussi simple que ça:

curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY",
    "task":
        {
            "type":"AntiGateTask",
            "websiteURL":"https://anti-captcha.com/demo/?page=recaptcha_v2_textarea",
            "templateName":"Demo sign-in at anti-captcha.com #123456",
            "variables": {
                "login":"some value",
                "password":"some value"
            }
        }
}' https://api.anti-captcha.com/createTask

C'est-à-dire, vous passez les paramètres "templateName" et "variables" pour remplir le modèle.

Utilisation des résultats de la tâche

Les tâches AntiGate terminées avec succès retournent une solution qui inclut "cookies", "localStorage", "fingerprint" et "url". Ce que votre logiciel doit faire, c'est naviguer vers "url" en utilisant "cookies" dans cette requête, et au moins utiliser la valeur "fingerprint.self.navigator.userAgent" pour le User-Agent du navigateur. Les sites web plus complexes stockent les données importantes dans localStorage, qui est une sorte de version moderne des cookies. Dans ce cas, vous devrez injecter ces données dans la page avant d'exécuter les Javascripts. Cela peut être fait dans un environnement de développement comme Puppeteer. Ce sujet mérite probablement un autre article.

Création de vos propres modèles

Suivez simplement les étapes ci-dessus sans charger l'exemple de modèle. Remplissez bien tous les détails et ajoutez soigneusement les étapes. Notez que toutes les étapes sont exécutées séquentiellement. Le plugin ne permettra pas l'exécution de l'étape suivante tant que l'étape en cours n'est pas terminée. A tout moment, vous pouvez enregistrer votre modèle et le tester avec le plugin du navigateur du travailleur.

Tarification

En ce moment, nous définisson le prix à $2 par 1000 tâches. De plus, chaque seconde d'exécution de la tâche coûte 1/60 du prix de la tâche. Par exemple, la tâche coûte $0.002, et le travailleur a passé 20 secondes pour la résoudre.
Le prix total sera de $0.00266 = 0.002 + (0.002 / 60 * 20) .