Notificación de uso de cookies

Este sitio utiliza cookies. Las cookies lo recuerdan, para que podamos brindarle servicios personalizados. Más información.

Omitir captcha usando Go

Omitir captcha usando Go

Resuelve el captcha con el módulo Go lang en línea.

Paquete Golang para una fácil integración con la API del servicio de resolución de captcha 2Captcha para omitir reCAPTCHA, hCaptcha, Arkose captcha, geetest y resuelve cualquier otro captchas

Inicio rápido

Instalación

El paquete de secuencias de comandos se puede instalar usando el instalador de paquetes o manualmente

GitHub

Para instalar el cliente api, use esto:

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

Te invitamos a explorar nuestro repositorio GitHub donde puedes encontrar bibliotecas y módulos para fácil integración con nuestra API.

Configuración

Descripción de todos los parámetros necesarios para configurar el paquete instalado

La instancia Client se puede crear así:

client := api2captcha.NewClient('YOUR_API_KEY')

También tiene la posibilidad de personalizar algunas de las opciones para la instancia creada:

client.SoftId = 123
client.Callback = "https://your.site/result-receiver"
client.DefaultTimeout = 120
client.RecaptchaTimeout = 600
client.PollingInterval = 100
Opciones de instancia de cliente
OpciónValor por defectoDescripción
softId-su ID de software obtenido después de publicarlo en el 2Captcha catálogo de software
llamar de vuelta-URL de su servidor web que recibe el resultado del reconocimiento de captcha. La URL debe registrarse primero en configuración de pingback de su cuenta
tiempo de espera predeterminado120Tiempo de espera de sondeo en segundos para todos los tipos de captcha excepto reCAPTCHA. Define cuánto tiempo el módulo intenta obtener la respuesta desde el extremo de la API res.php
recaptchaTiempo de espera600Tiempo de espera de sondeo para reCAPTCHA en segundos. Define cuánto tiempo el módulo intenta obtener la respuesta desde el extremo de la API res.php
intervalo de votación10Intervalo en segundos entre las solicitudes al punto final de la API res.php; no se recomienda establecer valores inferiores a 5 segundos
IMPORTANTE: una vez que is defined for se define para la instancia de Client, todos los métodos solo devuelven el ID de captcha y DO NO sondee la API para obtener el resultado. El resultado se enviará a la URL de devolución de llamada. Para obtener la respuesta manualmente, use el método getResult

Resolver Captcha

Cuando envía cualquier captcha basado en imágenes, el uso puede proporcionar opciones adicionales para ayudar a los trabajadores de 2Captcha a resolverlo correctamente

Opciones de captcha
opciónValor por defectoDescripción
numeric0Define si el captcha contiene símbolos numéricos u otros ver más información en los documentos API
minLength0longitud mínima de respuesta
maxLength0longitud máxima de respuesta
phrase0define si la respuesta contiene varias palabras o no
caseSensitive0define si la respuesta es sensible a mayúsculas y minúsculas
calc0define captcha requiere cálculo
lang-define el idioma captcha, consulte la lista de idiomas admitidos
hintImg-Una imagen con pista mostrada a los trabajadores con el captcha.
hintText-sugerencia o texto de tarea que se muestra a los trabajadores con el captcha

Ejemplo básico

El siguiente ejemplo muestra un ejemplo de llamada de solucionador básico con manejo de errores.

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

Para omitir un captcha normal (texto distorsionado en la imagen), use el siguiente método. Este método también se puede utilizar para reconocer cualquier texto en la imagen.

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",
 }
textoCaptcha

Este método se puede usar para omitir un captcha que requiere responder una pregunta proporcionada en texto claro.

recaptchaV2

Utilice este método para resolver reCAPTCHA V2 y obtener un token para eludir la protección.

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

Este método proporciona el solucionador reCAPTCHA V3 y devuelve un token.

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étodo de resolución FunCaptcha (Arkoselabs). Devuelve una ficha.

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étodo para resolver el captcha del rompecabezas GeeTest. Devuelve un conjunto de tokens como 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)
hCaptcha

Utilice este método para resolver el desafío hCaptcha. Devuelve un token para omitir el captcha.

cap := api2captcha.HCaptcha{
    SiteKey: "10000000-ffff-ffff-ffff-000000000001",
    Url: "https://mysite.com/captcha.html",   
 }
 req := cap.ToRequest()
 req.SetProxy("HTTPS", "login:password@IP_address:PORT")
 code, err := client.solve(req)
claveCaptcha

Método basado en token para resolver KeyCaptcha.

capy

Método basado en tokens para eludir el captcha del rompecabezas de 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)
Cuadrícula

El método de cuadrícula se llama originalmente método Old reCAPTCHA V2. El método se puede usar para omitir cualquier tipo de captcha donde puede aplicar una cuadrícula en la imagen y necesita hacer clic en cuadros de cuadrícula específicos. Devuelve números de cajas.

canvas

El método de lienzo se puede usar cuando necesita dibujar una línea alrededor de un objeto en la imagen. Devuelve un conjunto de coordenadas de puntos para dibujar un polígono.

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

El método ClickCaptcha devuelve las coordenadas de los puntos en la imagen captcha. Se puede usar si necesita hacer clic en puntos particulares de la imagen.

rotateCaptcha

Este método se puede usar para resolver un captcha que pide rotar un objeto. Se utiliza principalmente para eludir FunCaptcha. Devuelve el ángulo de rotación.

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",
}

Otros metodos

Métodos válidos adicionales utilizados durante el trabajo de los guiones principales

send / getResult

Estos métodos se pueden utilizar para el envío manual de captchas y encuestas de respuesta.

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

Utilice este método para obtener el saldo de su cuenta.

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

report

Use este método para informar una respuesta de captcha buena o mala.

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

Otros idiomas para la integración con la API del servicio