示例#1
0
        static void Main(string[] args)
        {
            // excluded by .gitignore, but contains the CapMonster key
            var secret      = File.ReadAllText("secret.txt");
            var start       = DateTime.Now;
            var client      = new CapMonsterClient(secret);
            var captchaTask = new RecaptchaV3TaskProxyless
            {
                WebsiteUrl = "https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta",
                WebsiteKey = "6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob",
                MinScore   = 0.9,
                PageAction = "myverify"
            };
            // Create the task and get the task id
            var taskId = client.CreateTaskAsync(captchaTask).Result;

            Console.WriteLine("Created task id : " + taskId);
            var solution = client.GetTaskResultAsync <RecaptchaV3TaskProxylessResult>(taskId).Result;
            // Recaptcha response to be used in the form
            var recaptchaResponse = solution.GRecaptchaResponse;

            //var recaptchaResponse = "bad";

            Console.WriteLine("Solution : " + recaptchaResponse);
            var web = new WebClient {
                Encoding = Encoding.UTF8
            };

            web.Headers.Add("content-type", "application/x-www-form-urlencoded");
            var result     = web.UploadString("https://lessons.zennolab.com/captchas/recaptcha/v3_verify.php?level=beta", "token=" + recaptchaResponse);
            var idxStart   = result.IndexOf("<pre>", StringComparison.Ordinal);
            var idxEnd     = result.IndexOf("</pre>", StringComparison.Ordinal);
            var jsonResult = result.Substring(idxStart, idxEnd - idxStart);

            Console.WriteLine(jsonResult);
            var end      = DateTime.Now;
            var duration = end - start;

            Console.WriteLine(duration.TotalSeconds);
        }
示例#2
0
        /// <inheritdoc/>
        public async override Task <StringResponse> SolveRecaptchaV3Async
            (string siteKey, string siteUrl, string action, float minScore, Proxy proxy = null,
            CancellationToken cancellationToken = default)
        {
            DBCTaskProxyless task;

            if (proxy != null)
            {
                task = new RecaptchaV3Task
                {
                    GoogleKey = siteKey,
                    PageUrl   = siteUrl,
                    Action    = action,
                    Min_Score = minScore
                }.SetProxy(proxy);
            }
            else
            {
                task = new RecaptchaV3TaskProxyless
                {
                    GoogleKey = siteKey,
                    PageUrl   = siteUrl,
                    Action    = action,
                    Min_Score = minScore
                };
            }

            var response = await httpClient.PostAsync(
                "captcha",
                GetAuthPair()
                .Add("type", 5)
                .Add("token_params", task.SerializeLowerCase()),
                cancellationToken)
                           .ConfigureAwait(false);

            return(await TryGetResult(HttpUtility.ParseQueryString(await DecodeIsoResponse(response)),
                                      CaptchaType.ReCaptchaV3, cancellationToken) as StringResponse);
        }