Contourner le captcha en utilisant Go

Contourner le captcha en utilisant Go

Résolvez captcha avec le module Go lang en ligne.

Package Golang pour une intégration facile avec l'API du service de résolution de captcha 2Captcha pour contourner reCAPTCHA, Arkose captcha, Geetest et résoudre tout autre captchas.

Démarrage rapide

Installation

Le paquet de scripts peut être installé à l'aide du programme d'installation des paquets ou manuellement.

GitHub

Pour installer le client api, utilisez ceci :

go get -u github.com/2captcha/2captcha-go

Nous vous invitons à explorer notre répertoire GitHub où vous trouverez des bibliothèques et des modules pour une intégration facile avec notre API.

Configuration

Description de tous les paramètres nécessaires pour configurer le paquet installé

Client instance peut être créée comme ceci :

client := api2captcha.NewClient('YOUR_API_KEY')

Vous avez également la possibilité de personnaliser certaines des options de l'instance créée :

client.SoftId = 123
client.Callback = "https://your.site/result-receiver"
client.DefaultTimeout = 120
client.RecaptchaTimeout = 600
client.PollingInterval = 100
Options d'instance du client
OptionValeur par défautDescription
softId-votre ID de logiciel obtenu après publication dans 2Captcha le catalogue de logiciel
rappel-L'URL de votre web-sever qui reçoit le résultat de la reconnaissance du captcha. L'URL doit d'abord être enregistrée dans pingback settings de votre compte.
defaultTimeout120Délai d'attente d'interrogation en secondes pour tous les types de captcha sauf reCAPTCHA. Définit la durée pendant laquelle le module essaie d'obtenir la réponse du point de terminaison de l'API res.php
recaptchaTimeout600Délai d'interrogation pour reCAPTCHA en secondes. Définit combien de temps le module essaie d'obtenir la réponse du res.php endpoint API.
pollingInterval10Intervalle en secondes entre les requêtes au point de terminaison de l'API res.php, la définition de valeurs inférieures à 5 secondes n'est pas recommandée.
IMPORTANT: une fois rappel est défini pour Client toutes les méthodes ne renvoient que l'identifiant captcha et n'interrogent PAS l'API pour obtenir le résultat. Le résultat sera envoyé à l'URL de rappel. Pour obtenir la réponse manuellement, utilisez la méthode getResult

Résoudre le captcha

Lorsque vous soumettez un captcha basé sur une image, vous pouvez fournir des options supplémentaires pour aider les travailleurs de 2Captcha à le résoudre correctement.

Options de captcha
OptionValeur par défautDescription
numeric0Définit si le captcha contient des symboles numeric ou autres voir plus d'infos dans les docs de l'API.
minLength0longueur minimale de réponse
maxLength0longueur maximale de la réponse
phrase0définit si la réponse contient des mots multiples ou non
caseSensitive0définit si la réponse est sensible à la casse
calc0définit que le captcha nécessite un calcul
lang-définit la langue du captcha, voir la liste des langues prises en charge.
hintImg-une image avec un indice montré aux travailleurs avec le captcha
hintText-Indice ou texte de tâche montré aux travailleurs avec le captcha.

Exemple basique

L'exemple ci-dessous montre un exemple d'appel de résolution de base avec gestion des erreurs.

cap := api2captcha.Normal{
   File: "/path/to/normal.jpg",
}

code, err := client.Solve(cap.ToRequest())
if err != nil {
  if err == api2captcha.ErrTimeout {
    log.Fatal("Timeout");
  } else if err == api2captcha.ErrApi {
    log.Fatal("API error");
  } else if err == api2captcha.ErrNetwork {
    log.Fatal("Network error");
  } else {
    log.Fatal(err);
  }
}
fmt.Println("code "+code)
simpleCaptcha

Pour contourner un captcha normal (texte déformé sur l'image), utilisez la méthode suivante. Cette méthode peut également être utilisée pour reconnaître n'importe quel texte sur l'image.

cap := api2captcha.Normal{
    File: "/path/to/normal.jpg",
    Numeric: 4,
    MinLen: 4,
    MaxLen: 20,
    Phrase: true,
    CaseSensitive: true,
    Lang: "en",
    HintImgFile: "/path/to/hint.jpg",
    HintText: "Type red symbols",
 }
textCaptcha

Cette méthode peut être utilisée pour contourner un captcha qui demande de répondre à une question fournie en clair.

cap := api2captcha.Text{
    Text: "If tomorrow is Saturday, what day is today?",
    Lang: "en",
 }
recaptchaV2

Utilisez cette méthode pour résoudre le reCAPTCHA V2 et obtenir un jeton pour contourner la protection.

cap := api2captcha.ReCaptcha{
    SiteKey: "6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-",
    Url: "https://mysite.com/page/with/recaptcha",
    Invisible: true,
    Action: "verify",
 }
 req := cap.ToRequest()
 req.SetProxy("HTTPS", "login:password@IP_address:PORT")
 code, err := client.solve(req)
recaptchaV3

Cette méthode fournit la résolution reCAPTCHA V3 et retourne un jeton.

cap := api2captcha.ReCaptcha{
    SiteKey: "6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-",
    Url: "https://mysite.com/page/with/recaptcha",
    Version: "v3",
    Action: "verify",
    Score: 0.3,
 }
 req := cap.ToRequest()
 req.SetProxy("HTTPS", "login:password@IP_address:PORT")
 code, err := client.solve(req)
funCaptcha

Méthode de résolution de FunCaptcha (Arkoselabs). Retourne un jeton.

cap := api2captcha.FunCaptcha{
    SiteKey: "69A21A01-CC7B-B9C6-0F9A-E7FA06677FFC",
    Url: "https://mysite.com/page/with/funcaptcha",
    Surl: "https://client-api.arkoselabs.com",
    UserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",
    Data: map[string]string{"anyKey":"anyValue"},   
 }
 req := cap.ToRequest()
 req.SetProxy("HTTPS", "login:password@IP_address:PORT")
 code, err := client.solve(req)
geeTest

Méthode pour résoudre le puzzle captcha de GeeTest. Retourne un ensemble de jetons en JSON.

cap := api2captcha.GeeTest{
    GT: "f2ae6cadcf7886856696502e1d55e00c",
    ApiServer: "api-na.geetest.com",
    Challenge: "12345678abc90123d45678ef90123a456b",
    Url: "https://mysite.com/captcha.html",
 }
 req := cap.ToRequest()
 req.SetProxy("HTTPS", "login:password@IP_address:PORT")
 code, err := client.solve(req)
keyCaptcha

Méthode basée sur les jetons pour résoudre KeyCaptcha.

cap := api2captcha.KeyCaptcha{
    UserId: 10,
    SessionId: "493e52c37c10c2bcdf4a00cbc9ccd1e8",
    WebServerSign: "9006dc725760858e4c0715b835472f22",
    WebServerSign2: "9006dc725760858e4c0715b835472f22",
    Url: "https://www.keycaptcha.ru/demo-magnetic/",   
 }
 req := cap.ToRequest()
 req.SetProxy("HTTPS", "login:password@IP_address:PORT")
 code, err := client.solve(req)
capy

Méthode basée sur un jeton pour contourner le captcha du puzzle Capy.

cap := api2captcha.Capy{
    SiteKey: "PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v",
    Url: "https://www.mysite.com/captcha/",   
 }
 req := cap.ToRequest()
 req.SetProxy("HTTPS", "login:password@IP_address:PORT")
 code, err := client.solve(req)
grille

La méthode de la grille est initialement appelée méthode Old reCAPTCHA V2. Cette méthode peut être utilisée pour contourner tout type de captcha où vous pouvez appliquer une grille sur l'image et où vous devez cliquer sur des cases spécifiques de la grille. Retourne le nombre de cases.

canvas

La méthode Canvas peut être utilisée lorsque vous avez besoin de dessiner une ligne autour d'un objet sur une image. Renvoie un ensemble de coordonnées de points pour dessiner un polygone.

cap := api2captcha.Canvas{
    File: "path/to/captcha.jpg",
    PreviousId: 0,
    CanSkip: false,
    Lang: "en",
    HintImageFile: "path/to/hint.jpg",
    HintText: "Draw around apple",
}
clickCaptcha

La méthode ClickCaptcha renvoie les coordonnées des points sur l'image captcha. Peut être utilisée si vous avez besoin de cliquer sur des points particuliers de l'image.

cap := api2captcha.Coordinates{
    File: "path/to/captcha.jpg",
    Lang: "en",
    HintImageFile: "path/to/hint.jpg",
    HintText: "Connect the dots",
}
rotateCaptcha

Cette méthode peut être utilisée pour résoudre un captcha qui demande de faire tourner un objet. Principalement utilisé pour contourner FunCaptcha. Retourne l'angle de rotation.

cap := api2captcha.Rotate{
    File: "path/to/captcha.jpg",
    Angle: 40,
    Lang: "en",
    HintImageFile: "path/to/hint.jpg",
    HintText: "Put the images in the correct way",
}

Autres méthodes

Méthodes valides supplémentaires utilisées pendant le travail des scripts principaux

send / getResult

Ces méthodes peuvent être utilisées pour la soumission manuelle de captcha et le sondage des réponses.

id, err := client.Send(cap.ToRequest())
if err != nil {
   log.Fatal(err);
}

time.Sleep(10 * time.Second)

code, err := client.GetResult(id)
if err != nil {
   log.Fatal(err);
}

if code == nil {
   log.Fatal("Not ready")
}

fmt.Println("code "+*code)

balance

Utilisez cette méthode pour obtenir le solde de votre compte.

balance, err := client.GetBalance()
if err != nil {
   log.Fatal(err);
}

report

Utilisez cette méthode pour signaler une bonne ou une mauvaise réponse au captcha.

err := client.Report(id, true) // solved correctly
err := client.Report(id, false) // solved incorrectly

Autres langues pour l'intégration avec l'API de service