Esempio n. 1
0
        public CaptchaControl()
        {
            InitializeComponent();

            _antiCaptchaOnlineApi = new AntiCaptchaOnlineApi(_progressLog);
            _progressLog          = new Progress <string>(update => ProgressLogMethod(update));
            _chromiumSettings     = CompositionRoot.Resolve <IChromiumSettings>();

            SetBalanceValue();

            btnAcRefreshBalance.Click += BtnAcRefreshBalance_Click;
            btnExecute.Click          += BtnExecute_Click;
            btnImgLoad.Click          += BtnImgLoad_Click;
            btnRecaptcha.Click        += BtnRecaptcha_Click;
        }
Esempio n. 2
0
        private async Task SolveImageCaptcha(Page page)
        {
            var svgImage = await page.QuerySelectorAsync("img.captcha__image");

            if (svgImage != null)
            {
                var antiCaptchaOnlineApi = new AntiCaptchaOnlineApi();
                var antiCaptchaResult    = antiCaptchaOnlineApi.SolveIm(await svgImage.ScreenshotBase64Async(new ScreenshotOptions {
                    OmitBackground = true
                }));
                if (antiCaptchaResult.Success)
                {
                    var eInputCaptcha = await page.QuerySelectorAsync("input#captcha");

                    if (eInputCaptcha != null)
                    {
                        await eInputCaptcha.ClickAsync(new ClickOptions { ClickCount = 3 });

                        await eInputCaptcha.TypeAsync(antiCaptchaResult.Response, _typeOptions);
                    }
                }
            }
        }
Esempio n. 3
0
        private async Task SolveRecaptcha(Page page)
        {
            var eRecaptcha = await page.QuerySelectorAsync("#g-recaptcha-response");

            if (eRecaptcha != null)
            {
                var anticaptchaScriptText = File.ReadAllText(Path.GetFullPath(".\\Data\\init.js"));
                anticaptchaScriptText = anticaptchaScriptText.Replace("YOUR-ANTI-CAPTCHA-API-KEY", AntiCaptchaOnlineApi.GetApiKeyAnticaptcha());
                await page.EvaluateExpressionAsync(anticaptchaScriptText);

                anticaptchaScriptText = File.ReadAllText(Path.GetFullPath(".\\Data\\recaptchaaiMailRu.js"));
                await page.EvaluateExpressionAsync(anticaptchaScriptText);

                //await page.AddScriptTagAsync("https://cdn.antcpt.com/imacros_inclusion/recaptcha.js");
                //await page.WaitForSelectorAsync(".antigate_solver.solved", new WaitForSelectorOptions { Timeout = 120 * 1000 });

                await page.WaitForTimeoutAsync(90 * 1000);

                var eSubmit = await page.QuerySelectorAsync("button[data-test-id='verification-next-button'");

                eRecaptcha = await page.QuerySelectorAsync("#g-recaptcha-response");

                if (eSubmit != null && eRecaptcha != null)
                {
                    await eSubmit.ClickAsync();
                }
                //await page.ClickAsync("input[type=submit]");
                //await page.WaitForNavigationAsync(new NavigationOptions { Timeout = 120 * 1000 });
                //await page.WaitForTimeoutAsync(60 * 1000);
                await SolveRecaptcha(page);
            }
        }
Esempio n. 4
0
        private async Task SolveRecaptcha(Page page, int deep = 0)
        {
            if (deep >= 2)
            {
                return;
            }
            var eGotoRecapthcha = await page.QuerySelectorAsync("#checkpointSubmitButton");

            if (eGotoRecapthcha == null)
            {
                return;
            }
            await eGotoRecapthcha.ClickAsync();

            await page.WaitForTimeoutAsync(2000);

            var eRecaptcha = await page.QuerySelectorAsync("#captcha_response");

            if (eRecaptcha != null)
            {
                //var targets = page.Browser.Targets();
                var anticaptchaScriptText = File.ReadAllText(Path.GetFullPath(".\\Data\\init.js"));
                anticaptchaScriptText = anticaptchaScriptText.Replace("YOUR-ANTI-CAPTCHA-API-KEY", AntiCaptchaOnlineApi.GetApiKeyAnticaptcha());
                await page.EvaluateExpressionAsync(anticaptchaScriptText);

                anticaptchaScriptText = File.ReadAllText(Path.GetFullPath(".\\Data\\recaptchaaifb.js"));
                await page.EvaluateExpressionAsync(anticaptchaScriptText);

                //targets[8].

                //await page.AddScriptTagAsync(new AddTagOptions { Content= anticaptchaScriptText });
                //await page.WaitForSelectorAsync(".antigate_solver.solved", new WaitForSelectorOptions { Timeout = 120 * 1000 });
                // await page.ClickAsync("input[type=submit]");
                //await page.WaitForNavigationAsync();
                try { await page.WaitForTimeoutAsync(90 * 1000); } catch { }
                await SolveRecaptcha(page, ++deep);
            }
        }
Esempio n. 5
0
        private async Task RegistrateByEmail(Page page)
        {
            Log.Info(page.Url);
            await FillName(page);
            await FillBirthdate(page);
            await FillSex(page);
            await FillEmail(page);

            if (page.Url.Contains("light."))
            {
                await ClickSubmit(page);
            }
            await FillPassword(page);

            if (page.Url.Contains("light."))
            {
                await FillPhone(page);

                await page.WaitForTimeoutAsync(500);
                await ClickSubmit(page);
            }
            await FillAdditionalEmail(page);

            await page.WaitForTimeoutAsync(1500);

            await ClickSubmit(page);

            await FillPhone(page);

            await page.WaitForTimeoutAsync(1500);

            await ClickSubmit(page);

            await page.WaitForTimeoutAsync(2500);

            var elImgage = await page.QuerySelectorAsync("img.js-captcha-img");

            if (elImgage == null)
            {
                elImgage = await page.QuerySelectorAsync("img[alt=Code]");
            }
            if (elImgage != null)
            {
                var antiCaptchaOnlineApi = new AntiCaptchaOnlineApi();
                var antiCaptchaResult    = antiCaptchaOnlineApi.SolveIm(await elImgage.ScreenshotBase64Async(new ScreenshotOptions {
                    OmitBackground = true
                }));
                if (antiCaptchaResult.Success)
                {
                    var eInputCaptcha = await page.QuerySelectorAsync("input[name='capcha']");

                    if (eInputCaptcha == null)
                    {
                        eInputCaptcha = await page.QuerySelectorAsync("input[data-test-id]");
                    }
                    await eInputCaptcha.TypeAsync(antiCaptchaResult.Response, _typeOptions);
                    await ClickSubmit(page);
                }
                await page.WaitForTimeoutAsync(15000);

                var emailSuccess = await page.QuerySelectorAsync("i#PH_user-email");

                if (emailSuccess != null)
                {
                    _data.Success = true;
                    Log.Info($"emailSuccess: {JsonConvert.SerializeObject(_data)}");
                    await page.ClickAsync("button[data-test-id='onboarding-button-start']");
                }
                else
                {
                    _data.ErrMsg = @"Нет перехода на страницу зарегистрированного email";
                }
            }
        }