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; }
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); } } } }
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); } }
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); } }
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"; } } }