Omitir captcha usando C#
Integra la biblioteca C# para la escritura automática de captchas. La API se puede integrar en cualquier script.
Paquete CSharp para una fácil integración con la API del servicio de resolución de captcha de 2Captcha para omitir reCAPTCHA, Arkose captcha, geetest y resuelve cualquier otro captchas
Inicio rápidoInstalación
El paquete de secuencias de comandos se puede instalar usando el instalador de paquetes o manualmente
NuGet
Para instalar automáticamente un paquete de biblioteca, debes usar la solución estándar para paquetes CSharp: NuGet. Descárgalo del enlace e instálalo según las instrucciones. Después de instalar la aplicación, instala el paquete de biblioteca necesario.
Te invitamos a explorar nuestro GitHub repositorio 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
Una instancia de la clase TwoCaptcha
se puede crear así:
TwoCaptcha solver = new TwoCaptcha('YOUR_API_KEY');
También tiene la posibilidad de personalizar algunas de las opciones para la instancia creada:
solver.SoftId = 123;
solver.Callback = "https://your.site/result-receiver";
solver.DefaultTimeout = 120;
solver.RecaptchaTimeout = 600;
solver.PollingInterval = 10;
Opciones de instancia de TwoCaptcha
Opción | Valor por defecto | Descripció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 predeterminado | 120 | Tiempo 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 espera | 600 | Tiempo 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ón | 10 | Intervalo 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 quedevolución de llamada
se define para la instancia deTwoCaptcha
, todos los métodos devuelven solo 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ón | Valor por defecto | Descripción |
---|---|---|
numeric | 0 | Define si el captcha contiene símbolos numéricos u otros ver más información en los documentos API |
minLength | 0 | longitud mínima de respuesta |
maxLength | 0 | longitud máxima de respuesta |
phrase | 0 | define si la respuesta contiene varias palabras o no |
caseSensitive | 0 | define si la respuesta es sensible a mayúsculas y minúsculas |
calc | 0 | define 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.
Normal captcha = new Normal();
captcha.SetFile("path/to/captcha.jpg");
captcha.SetMinLen(4);
captcha.SetMaxLen(20);
captcha.SetCaseSensitive(true);
captcha.SetLang("en");
try
{
await solver.Solve(captcha);
Console.WriteLine("Captcha solved: " + captcha.Code);
}
catch (Exception e)
{
Console.WriteLine("Error occurred: " + e.Message);
}
- Captcha normal
- Captcha de texto
- reCAPTCHA v2
- reCAPTCHA v3
- FunCaptcha
- GeeTest
- claveCaptcha
- Capy
- Cuadrícula
- Can
- clickCaptcha
- girar
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.
Normal captcha = new Normal();
captcha.SetFile("path/to/captcha.jpg");
captcha.SetNumeric(4);
captcha.SetMinLen(4);
captcha.SetMaxLen(20);
captcha.SetPhrase(true);
captcha.SetCaseSensitive(true);
captcha.SetCalc(false);
captcha.SetLang("en");
captcha.SetHintImg(new FileInfo("path/to/hint.jpg"));
captcha.SetHintText("Type red symbols only");
Este método se puede usar para omitir un captcha que requiere responder una pregunta proporcionada en texto claro.
Utilice este método para resolver reCAPTCHA V2 y obtener un token para eludir la protección.
ReCaptcha captcha = new ReCaptcha();
captcha.SetSiteKey("6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-");
captcha.SetUrl("https://mysite.com/page/with/recaptcha");
captcha.SetInvisible(true);
captcha.SetAction("verify");
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");
Este método proporciona el solucionador reCAPTCHA V3 y devuelve un token.
ReCaptcha captcha = new ReCaptcha();
captcha.SetSiteKey("6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-");
captcha.SetUrl("https://mysite.com/page/with/recaptcha");
captcha.SetVersion("v3");
captcha.SetDomain("google.com");
captcha.SetAction("verify");
captcha.SetScore(0.3);
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");
Método de resolución FunCaptcha (Arkoselabs). Devuelve una ficha.
FunCaptcha captcha = new FunCaptcha();
captcha.SetSiteKey("69A21A01-CC7B-B9C6-0F9A-E7FA06677FFC");
captcha.SetUrl("https://mysite.com/page/with/funcaptcha");
captcha.SetSUrl("https://client-api.arkoselabs.com");
captcha.SetUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36");
captcha.SetData("anyKey", "anyValue");
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");
Método para resolver el captcha del rompecabezas GeeTest. Devuelve un conjunto de tokens como JSON.
GeeTest captcha = new GeeTest();
captcha.SetGt("f2ae6cadcf7886856696502e1d55e00c");
captcha.SetApiServer("api-na.geetest.com");
captcha.SetChallenge("12345678abc90123d45678ef90123a456b");
captcha.SetUrl("https://mysite.com/captcha.html");
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");
Método basado en token para resolver KeyCaptcha.
Método basado en tokens para eludir el captcha del rompecabezas de Capy.
Capy captcha = new Capy();
captcha.SetSiteKey("PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v");
captcha.SetUrl("https://www.mysite.com/captcha/");
captcha.SetProxy("HTTPS", "login:password@IP_address:PORT");
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.
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.
Canvas captcha = new Canvas();
captcha.SetFile("path/to/captcha.jpg");
captcha.SetPreviousId(0);
captcha.SetCanSkip(false);
captcha.SetLang("en");
captcha.SetHintImg(new FileInfo("path/to/hint.jpg"));
captcha.SetHintText("Draw around apple");
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.
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.
Rotate captcha = new Rotate();
captcha.SetFile("path/to/captcha.jpg");
captcha.SetAngle(40);
captcha.SetLang("en");
captcha.SetHintImg(new FileInfo("path/to/hint.jpg"));
captcha.SetHintText("Put the images in the correct way up");
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.
string captchaId = await solver.Send(captcha);
Task.sleep(20 * 1000);
string code = await solver.GetResult(captchaId);
balance
Utilice este método para obtener el saldo de su cuenta.
double balance = await solver.Balance();
report
Use este método para informar una respuesta de captcha buena o mala.
await solver.Report(captcha.Id, true); // captcha solved correctly
await solver.Report(captcha.Id, false); // captcha solved incorrectly
Manejo de errores
Posibles variantes de errores estándar devueltos por el servicio al procesar solicitudes
Si se produce un error, el solucionador de captcha arroja una excepción. Es importante manejar adecuadamente estos casos. Recomendamos usar try/catch
para manejar las excepciones.
try
{
await solver.Solve(captcha);
}
catch (ValidationException e)
{
// invalid parameters passed
}
catch (NetworkException e)
{
// network error occurred
}
catch (ApiException e)
{
// api respond with error
}
catch (TimeoutException e)
{
// captcha is not solved so far
}
Otros idiomas para la integración con la API del servicio
Paquete PHP para la integración con la API del servicio
Paquete Python para la integración con la API del servicio
Paquete Java para la integración con la API del servicio
Paquete Golang para la integración con la API del servicio
Paquete Ruby para la integración con la API del servicio
Paquete JavaScript para la integración con la API del servicio