// methods private async Task solveCaptcha(Job j) { string captchaResponse = null; j.Status = "Getting captcha response..."; if (Manager.use2Captcha) { _2Captcha captcha = new _2Captcha(Manager.myKey, Manager.siteKey); captchaResponse = await captcha.solveCaptcha(); } else if (Manager.useAntiCaptcha) { AntiCaptcha captcha = new AntiCaptcha(Manager.myKey, Manager.siteKey); captchaResponse = captcha.solveCaptcha(); } if (captchaResponse == "false") { j.Status = "Error Getting Captcha!"; } else { //_status = true; j.Status = "Got captcha response!"; j.CaptchaResponse = captchaResponse; } }
/// <inheritdoc /> public override void Process(BotData data) { if (!data.GlobalSettings.Captchas.BypassBalanceCheck) { base.Process(data); } data.Log(new LogEntry("Solving reCaptcha...", Colors.White)); string recapResponse = ""; CaptchaServices.CaptchaService service = null; switch (data.GlobalSettings.Captchas.CurrentService) { case CaptchaService.ImageTypers: service = new ImageTyperz(data.GlobalSettings.Captchas.ImageTypToken, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.AntiCaptcha: service = new AntiCaptcha(data.GlobalSettings.Captchas.AntiCapToken, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.DBC: service = new DeathByCaptcha(data.GlobalSettings.Captchas.DBCUser, data.GlobalSettings.Captchas.DBCPass, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.TwoCaptcha: service = new TwoCaptcha(data.GlobalSettings.Captchas.TwoCapToken, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.DeCaptcher: service = new DeCaptcher(data.GlobalSettings.Captchas.DCUser, data.GlobalSettings.Captchas.DCPass, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.AZCaptcha: service = new AZCaptcha(data.GlobalSettings.Captchas.AZCapToken, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.SolveRecaptcha: service = new SolveReCaptcha(data.GlobalSettings.Captchas.SRUserId, data.GlobalSettings.Captchas.SRToken, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.CaptchasIO: service = new CaptchasIO(data.GlobalSettings.Captchas.CIOToken, data.GlobalSettings.Captchas.Timeout); break; default: throw new Exception("This service cannot solve reCaptchas!"); } recapResponse = service.SolveRecaptcha(siteKey, ReplaceValues(url, data)); data.Log(recapResponse == "" ? new LogEntry("Couldn't get a reCaptcha response from the service", Colors.Tomato) : new LogEntry("Succesfully got the response: " + recapResponse, Colors.GreenYellow)); if (VariableName != "") { data.Log(new LogEntry("Response stored in variable: " + variableName, Colors.White)); data.Variables.Set(new CVar(variableName, recapResponse)); } }
private void checkBalanceButton_Click(object sender, RoutedEventArgs e) { // Save IOManager.SaveSettings(Globals.rlSettingsFile, Globals.rlSettings); double balance = 0; try { switch (Globals.rlSettings.Captchas.CurrentService) { case BlockCaptcha.CaptchaService.AntiCaptcha: balance = new AntiCaptcha(Globals.rlSettings.Captchas.AntiCapToken, 0).GetBalance(); break; case BlockCaptcha.CaptchaService.DBC: balance = new DeathByCaptcha(Globals.rlSettings.Captchas.DBCUser, Globals.rlSettings.Captchas.DBCPass, 0).GetBalance(); break; case BlockCaptcha.CaptchaService.DeCaptcher: balance = new DeCaptcher(Globals.rlSettings.Captchas.DCUser, Globals.rlSettings.Captchas.DCPass, 0).GetBalance(); break; case BlockCaptcha.CaptchaService.ImageTypers: balance = new ImageTyperz(Globals.rlSettings.Captchas.ImageTypToken, 0).GetBalance(); break; case BlockCaptcha.CaptchaService.TwoCaptcha: balance = new TwoCaptcha(Globals.rlSettings.Captchas.TwoCapToken, 0).GetBalance(); break; case BlockCaptcha.CaptchaService.RuCaptcha: balance = new RuCaptcha(Globals.rlSettings.Captchas.RuCapToken, 0).GetBalance(); break; case BlockCaptcha.CaptchaService.AZCaptcha: balance = new AZCaptcha(Globals.rlSettings.Captchas.AZCapToken, 0).GetBalance(); break; case BlockCaptcha.CaptchaService.SolveRecaptcha: balance = new SolveReCaptcha(Globals.rlSettings.Captchas.SRUserId, Globals.rlSettings.Captchas.SRToken, 0).GetBalance(); break; case BlockCaptcha.CaptchaService.CaptchasIO: balance = new CaptchasIO(Globals.rlSettings.Captchas.CIOToken, 0).GetBalance(); break; default: balance = 999; break; } } catch { balanceLabel.Content = "WRONG TOKEN / CREDENTIALS"; balanceLabel.Foreground = Globals.GetBrush("ForegroundBad"); return; } balanceLabel.Content = balance; balanceLabel.Foreground = balance > 0 ? Globals.GetBrush("ForegroundGood") : Globals.GetBrush("ForegroundBad"); }
private async Task <string> SolveImage(string imageBase64) { AntiCaptchaResult antiCaptchaResult = await AntiCaptcha.SolveImage(imageBase64); if (antiCaptchaResult.Success) { return(antiCaptchaResult.Response); } return(null); }
private async Task <string> SolveRecaptcha(string googleSiteKey, string pageUrl, bool isInvisible) { AntiCaptchaResult antiCaptchaResult = await AntiCaptcha.SolveReCaptchaV2(googleSiteKey, pageUrl, isInvisible); if (antiCaptchaResult.Success) { return(antiCaptchaResult.Response); } return(null); }
public static bool TryInitialize() { string anticaptchaKey = File.Exists("anticaptcha_key.txt") ? File.ReadAllText("anticaptcha_key.txt") : null; if (anticaptchaKey != null) { AnticaptchaWorker.Api = new AntiCaptcha(anticaptchaKey); return(true); } return(false); }
private async void SetBalance() { AntiCaptchaResult antiCaptchaResult = await AntiCaptcha.GetBalance(); if (antiCaptchaResult.Success) { Balance = Convert.ToDecimal(antiCaptchaResult.Response); } else { Balance = 0m; } }
public DecodificadorBusiness(string Base64) { _base64 = Base64; //Configurando instância do antigate com o token de acesso. _antiGate = new AntiCaptcha(ConfigurationManager.AppSettings["TokenAntigate"]) { CheckDelay = 5000, CheckRetryCount = 20, SlotRetry = 5, SlotRetryDelay = 800 }; //Gerando URL da imagem cache.. GetPathCaptcha(); }
private static string GetCapcha(string nameFile) { var answer = ""; try { if (string.IsNullOrWhiteSpace(Config.GetConfig().CapchaId)) { throw new Exception("Не задан ключ для антикапчи"); } var anticap = new AntiCaptcha(Config.GetConfig().CapchaId) { CheckDelay = 10000, CheckRetryCount = 20, SlotRetry = 5, SlotRetryDelay = 800 }; //anticap.Parameters.Set("is_russian", "1"); // отправляем файл и ждем ответа answer = anticap.GetAnswer(nameFile); if (answer == null || "error_captcha_unsolvable".Equals(answer) || "ERROR_BAD_DUPLICATES".Equals(answer)) { throw new Exception("Ошибка при распознавании капчи"); } return(answer); } //TODO когда появится какая-нибудь реальная ошибка, тогда и будем думать о полном выходе из программы catch (AntigateErrorException) { // Antigate ответил одной из документированных в API ошибкой } catch (Exception) { // возникло исключение } return(answer); }
private async void getBalance() { double balance = 0; string title = null; if (radioButton2Captcha.IsChecked == true) { _2Captcha twoCaptcha = new _2Captcha(Manager.myKey, Manager.siteKey); balance = await twoCaptcha.getBalance(); title = "2Captcha"; } else if (radioButtonAntiCaptcha.IsChecked == true) { AntiCaptcha antiCaptcha = new AntiCaptcha(Manager.myKey, Manager.siteKey); balance = antiCaptcha.getBalance(); title = "Anti-Captcha"; } await this.ShowMessageAsync(title, "Balance " + balance, MessageDialogStyle.Affirmative); }
string RecognizeCaptcha(string ImagePath) { DebugLog.WriteLine("Starting recognizing captcha..."); DebugLog.WriteLine("Image file: " + ImagePath); string result = null; AntiCaptcha anticap = new AntiCaptcha(AntiCaptchaKey); anticap.CheckDelay = 10000; anticap.CheckRetryCount = 20; anticap.SlotRetry = 5; anticap.SlotRetryDelay = 800; try { result = anticap.GetAnswer(ImagePath); if (result == null) { DebugLog.WriteLine("AntiCaptcha: no answer"); return(null); } } catch (Exception e) { DebugLog.WriteLine("AntiCaptcha error: " + e.Message); return(null); } DebugLog.WriteLine("Captcha code is: " + result); return(result); }
public string ImageToText(string imageName) { var antiCaptcha = new AntiCaptcha(Profile.AntiCaptchaApiKey, imageName); string result; var id = antiCaptcha.UploadFile(); if (id.StartsWith("OK|")) { id = id.Replace("OK|", ""); result = antiCaptcha.Recognize(id); if (result.StartsWith("OK|")) { result = result.Replace("OK|", ""); } } else { result = id; } return(result); }
public override async Task <string> GetCaptchaResponse(string siteKey, string url) { AntiCaptcha client = new AntiCaptcha(_apiKey); NoCaptchaTaskProxyless task = new NoCaptchaTaskProxyless { websiteKey = siteKey, websiteURL = url }; TaskResponse response = await client.SubmitTask(task); while (true) { NoCaptchaSolution solution = await client.GetNoCaptchaSolution(response.taskId); if (solution.errorId != 0) { return(""); } if (solution.status == "ready") { return(solution.solution.gRecaptchaResponse); } } }
static async Task Foo() { /* * Class initialization * Optionally you can pass 2nd parameter `httpClient` with custom HttpClient to use while requesting API */ var captcha = new AntiCaptcha("API_KEY"); var captchaCustomHttp = new AntiCaptcha("API_KEY", new HttpClient()); /* * Get current balance */ var balance = await captcha.GetBalance(); /* * Type: Image * * Documentation (anti-captcha): https://anti-captcha.com/apidoc/image */ var image = await captcha.SolveImage("BASE64_IMAGE"); /* * Type: ReCaptcha V2 * Optionally you can pass 3rd parameter `isInvisible` to indicate if the reCaptcha is setup as invisible * * Homepage: https://www.google.com/recaptcha/ * Documentation (vendor): https://developers.google.com/recaptcha/docs/display * Documentation (anti-captcha): https://anti-captcha.com/apidoc/recaptcha */ var reCaptcha = await captcha.SolveReCaptchaV2("SITE_KEY", "https://WEBSITE_URL"); var reCaptchaInvisible = await captcha.SolveReCaptchaV2("SITE_KEY", "https://WEBSITE_URL", true); var reCaptchaWithProxy = await captcha.SolveReCaptchaV2("SITE_KEY", "https://WEBSITE_URL", new AntiCaptchaProxy(ProxyType.Http, "PROXY_ADDRESS", 8080), "USER_AGENT"); /* * Type: ReCaptcha V3 * If you get ERROR_INCORRECT_SESSION_DATA error you may need to increase minScore value * * Homepage: https://www.google.com/recaptcha/ * Documentation (vendor): https://developers.google.com/recaptcha/docs/v3 * Documentation (anti-captcha): https://anti-captcha.com/apidoc/recaptcha */ var reCaptchaV3 = await captcha.SolveReCaptchaV3("SITE_KEY", "https://WEBSITE_URL", 0.9, "SOME_ACTION"); /* * Type: hCaptcha * * Homepage: https://www.hcaptcha.com/ * Documentation (vendor): https://docs.hcaptcha.com/ * Documentation (anti-captcha): https://anti-captcha.com/apidoc/hcaptcha */ var hCaptcha = await captcha.SolveHCaptcha("SITE_KEY", "https://WEBSITE_URL"); var hCaptchaWithProxy = await captcha.SolveHCaptcha("SITE_KEY", "https://WEBSITE_URL", new AntiCaptchaProxy(ProxyType.Http, "PROXY_ADDRESS", 8080), "USER_AGENT"); /* * Type: GeeTest * * Homepage: https://www.geetest.com/en * Documentation (vendor): https://docs.geetest.com/en * Documentation (anti-captcha): https://anti-captcha.com/apidoc/geetest */ var geeTest = await captcha.SolveGeeTest("SITE_KEY", "https://WEBSITE_URL", "CHALLENGE"); var geeTestWithProxy = await captcha.SolveGeeTest("SITE_KEY", "https://WEBSITE_URL", "CHALLENGE", new AntiCaptchaProxy(ProxyType.Http, "PROXY_ADDRESS", 8080), "USER_AGENT"); /* * Type: FunCaptcha * * Documentation (anti-captcha): https://anti-captcha.com/apidoc/funcaptcha */ var funCaptcha = await captcha.SolveFunCaptcha("SITE_KEY", "https://WEBSITE_URL"); var funCaptchaWithProxy = await captcha.SolveFunCaptcha("SITE_KEY", "https://WEBSITE_URL", new AntiCaptchaProxy(ProxyType.Http, "PROXY_ADDRESS", 8080), "USER_AGENT"); /* * Type: SquareNet */ var squareNet = await captcha.SolveSquareNet("BASE64_IMAGE", "OBJECT_NAME", 3, 3); Debugger.Break(); }
/// <summary> /// Does the job. /// </summary> /// <returns>null</returns> public bool DoJob() { _helper.Log(ConsoleColor.Cyan, "[INFO] Initialize connection!"); var browser = new Browser(); browser.RequestLogged += OnBrowserRequestLogged; browser.MessageLogged += new Action <Browser, string>(OnBrowserMessageLogged); browser.GenerateUserAgent(); _helper.Log(ConsoleColor.Yellow, "[SIMPLE BROWSER] UserAgent " + browser.UserAgent); Random proxyRandom = new Random(); var proxyFile = @"Proxy-Online.txt"; var lines = File.ReadAllLines(proxyFile); var selectRandomProxy = proxyRandom.Next(0, lines.Length); _helper.Log(ConsoleColor.Green, "[INFO] Total proxies for this session is " + lines.Length); if (_helper.CanPing(lines[selectRandomProxy].Substring(0, lines[selectRandomProxy].LastIndexOf(':')))) { _helper.Log(ConsoleColor.Magenta, "[INFO] Dead proxy! Trying new one!"); IsDone = false; } if (lines.Length > selectRandomProxy) { browser.SetProxy(lines[selectRandomProxy]); } _helper.Log(ConsoleColor.Cyan, "[INFO] Setting proxy to: " + lines[selectRandomProxy]); try { browser.Navigate(Url, 25000); if (LastRequestFailed(browser)) { _helper.Log(ConsoleColor.Red, "[ERROR] Can't conect to E-Konsulat page!"); return(IsDone = false); } _helper.Log(ConsoleColor.Green, "[INFO] Succsesful connection to website!"); #region check the city captha image if (IdCity == "83") { _capthaHtmlResult = browser.Find("c_uslugi_rejestracjaterminu_cp_botdetectcaptcha_CaptchaImage"); var capthaImage = browser.Find("img", FindBy.Id, "c_uslugi_rejestracjaterminu_cp_botdetectcaptcha_CaptchaImage").GetAttribute("src"); _properUrl = $"https://secure.e-konsulat.gov.pl{capthaImage}"; } else { _capthaHtmlResult = browser.Find("cp_KomponentObrazkowy_CaptchaImageID"); var capthaImage = browser.Find("img", FindBy.Id, "cp_KomponentObrazkowy_CaptchaImageID").GetAttribute("src"); _properUrl = $"https://secure.e-konsulat.gov.pl{capthaImage.Substring(2)}"; } #endregion if (_capthaHtmlResult.Exists) { var fileNameGuid = Guid.NewGuid(); _helper.Log(ConsoleColor.Green, "[INFO] Link to captha: " + _properUrl); _helper.Log(ConsoleColor.Green, "[INFO] Saving to file: " + fileNameGuid); #region download image by city if (IdCity == "83") { browser.DownloadImageFromStream(_properUrl, @"Assets\", fileNameGuid + ".png"); } else { browser.DownloadImageFromStream(_properUrl, @"Assets\", fileNameGuid + ".png"); } #endregion #region save online proxies to file if (proxyFile.Equals(@"Proxy.txt")) { _helper.SaveWorkedProxyToFile(lines[selectRandomProxy]); } #endregion #region work with captha var anticaptha = new AntiCaptcha(AntigateKey) { CheckDelay = 2500, SlotRetryDelay = 250, SlotRetry = 2, CheckRetryCount = 10 }; anticaptha.Parameters.Set("regsense", "1"); anticaptha.Parameters.Set("phrase", "0"); var captha = anticaptha.GetAnswer(@"Assets\" + fileNameGuid + ".png"); if (captha != null) { _helper.Log(ConsoleColor.Green, "[INFO] Captha code is " + captha); if (IdCity == "83") { _capthaInput = browser.Find("cp_BotDetectCaptchaCodeTextBox"); } else { _capthaInput = browser.Find("cp_KomponentObrazkowy_VerificationID"); } if (_capthaInput.Exists) { _capthaInput.Value = captha; var btnSubmitCaptha = browser.Find("cp_btnDalej"); btnSubmitCaptha.Click(); if (LastRequestFailed(browser)) { _helper.Log(ConsoleColor.Red, "[ERROR] Can't conect to E-Konsulat page!"); return(IsDone = false); } // Errorr captha var errorCaptha = browser.Find("cp_lblC"); if (errorCaptha.Exists) { anticaptha.FalseCaptcha(); _helper.Log(ConsoleColor.Red, "[ERROR] Wrong captha code!"); return(IsDone = false); } // Other city if (IdCity == "83") { browser.AutoRedirect = true; selectFor = browser.Find(ElementType.SelectBox, FindBy.Id, "cp_cbRodzajUslugi"); if (selectFor.Exists) { selectFor.DoAspNetLinkPostBack(); selectFor.Value = visaForLuck; //selectFor.DoAspNetLinkPostBack(); _helper.Log(ConsoleColor.White, "[ELEMENT] Select for " + selectFor.Value); Thread.Sleep(1000); if (LastRequestFailed(browser)) { _helper.Log(ConsoleColor.Red, "[ERROR] Can't conect to E-Konsulat page!"); return(IsDone = false); } } } // Succses captha var dateEl = browser.Find("span", FindBy.Id, "cp_lblBrakTerminow"); if (dateEl.Exists) { _helper.Log(ConsoleColor.Magenta, "[INFO] No dates avaliable. " + dateEl.XElement.Value); IsDone = false; } // Succses captha and founded new dates var dateAval = browser.Find(ElementType.SelectBox, FindBy.Id, "cp_cbDzien"); if (dateAval.Exists) { var dateAvalOptions = browser.Select("#cp_cbDzien option"); foreach (var opt in dateAvalOptions) { _helper.Log(ConsoleColor.Magenta, "[INFO] Avaliable date is " + opt.Value); _dateList.Add(opt.Value); } dateAval.Value = _dateList[1].ToString(); _helper.Log(ConsoleColor.Magenta, "[INFO] Selecting first option date " + _dateList[1]); _helper.Log(ConsoleColor.Green, "[INFO] Click on date select"); if (LastRequestFailed(browser)) { _helper.Log(ConsoleColor.Red, "[ERROR] Can't conect to E-Konsulat page!"); return(IsDone = false); } browser.Find("cp_btnRezerwuj").Click(); _helper.Log(ConsoleColor.Green, "[INFO] Trying to submit date"); if (LastRequestFailed(browser)) { _helper.Log(ConsoleColor.Red, "[ERROR] Can't conect to E-Konsulat page!"); return(IsDone = false); } _helper.Log(ConsoleColor.Green, "[INFO] Get the form! Downloading user application!"); _helper.Log(ConsoleColor.Magenta, "[XML] Loading data from file"); // Go throught Webdriver var chromeOptions = new ChromeOptions(); var proxy = new Proxy(); proxy.Kind = ProxyKind.Manual; proxy.HttpProxy = lines[selectRandomProxy]; proxy.FtpProxy = lines[selectRandomProxy]; proxy.SslProxy = lines[selectRandomProxy]; chromeOptions.Proxy = proxy; IWebDriver driver = new ChromeDriver(@"Chrome\", chromeOptions); //Cookie cookie = new Cookie(); driver.Manage().Window.Maximize(); driver.Navigate().GoToUrl(browser.Url); var driverCookie = driver.Manage().Cookies; var browserCookie = browser.Cookies; var cookie = _helper.GetAllCookies(browserCookie); for (int i = 0; i < cookie.Count; i++) { driverCookie.AddCookie(new OpenQA.Selenium.Cookie(cookie[i].Name, cookie[i].Value, cookie[i].Domain, cookie[i].Path, cookie[i].Expires)); } // Element var firstName = driver.FindElement(By.Id(FormHelper.FirstNameInput)); var lastName = driver.FindElement(By.Id(FormHelper.LastNameInput)); var lastNameBirthday = driver.FindElement(By.Id(FormHelper.LastNameBirthdayInput)); var dateOfBirthday = driver.FindElement(By.Id(FormHelper.DateOfBirthdayInput)); var placeOfBirthday = driver.FindElement(By.Id(FormHelper.PlaceOfBirthdayInput)); var countryOfBirthday = driver.FindElement(By.Id(FormHelper.CountryOfBirthdayInput)); var currentNat = driver.FindElement(By.Id(FormHelper.CurrentNatInput)); var originalNat = driver.FindElement(By.Id(FormHelper.OriginalNatInput)); var nationalId = driver.FindElement(By.Id(FormHelper.NationalIdInput)); var numberOfTravelDoc = driver.FindElement(By.Id(FormHelper.NumberOfTravelDocumentInput)); var numberOfTravelDateIssue = driver.FindElement(By.Id(FormHelper.NumberOfTravelDocumentDateIssueInput)); var numberOfTravelValid = driver.FindElement(By.Id(FormHelper.NumberOfTravelDocumentValidUntilInput)); var numberOfTravelIssuedBy = driver.FindElement(By.Id(FormHelper.NumberOfTravelDocumentIssuedByInput)); var appCountry = driver.FindElement(By.Id(FormHelper.ApplicantCountrySelect)); var appState = driver.FindElement(By.Id(FormHelper.ApplicantStateInput)); var appPlace = driver.FindElement(By.Id(FormHelper.ApplicantPlaceInput)); var appPostalCode = driver.FindElement(By.Id(FormHelper.ApplicantPostalCodeInput)); var appAddress = driver.FindElement(By.Id(FormHelper.ApplicantAddressInput)); var appEmail = driver.FindElement(By.Id(FormHelper.ApplicantEmailInput)); var appPhoneCode = driver.FindElement(By.Id(FormHelper.ApplicantPhoneCodeInput)); var appPhone = driver.FindElement(By.Id(FormHelper.ApplicantPhoneInput)); var curOcupState = driver.FindElement(By.Id(FormHelper.CurrentOccupationStateSelect)); var curOcupProvince = driver.FindElement(By.Id(FormHelper.CurrentOccupationProvinceInput)); var curOcupPlace = driver.FindElement(By.Id(FormHelper.CurrentOccupationPlaceInput)); var curOcupPostalCode = driver.FindElement(By.Id(FormHelper.CurrentOccupationPostalCodeInput)); var curOcupAddress = driver.FindElement(By.Id(FormHelper.CurrentOccupationAddressInput)); var curOcupPhoneCode = driver.FindElement(By.Id(FormHelper.CurrentOccupationPhoneCodeInput)); var curOcupPhone = driver.FindElement(By.Id(FormHelper.CurrentOccupationPhoneInput)); var curOcupName = driver.FindElement(By.Id(FormHelper.CurrentOccupationNameInput)); var curOcupEmail = driver.FindElement(By.Id(FormHelper.CurrentOccupationEmailInput)); var curOcupFaxCode = driver.FindElement(By.Id(FormHelper.CurrentOccupationFaxCodeInput)); var curOcupFax = driver.FindElement(By.Id(FormHelper.CurrentOccupationFaxInput)); var destinationCountry = driver.FindElement(By.Id(FormHelper.DestinationCountrySelect)); var firstEntry = driver.FindElement(By.Id(FormHelper.FirstEntryCountrySelect)); var duration = driver.FindElement(By.Id(FormHelper.DurationInput)); var arrDate = driver.FindElement(By.Id(FormHelper.ArriveDateInput)); var deparDate = driver.FindElement(By.Id(FormHelper.DepartureDateInput)); var recCountry = driver.FindElement(By.Id(FormHelper.ReceivingPersonCountry)); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load($@"Input\applicant_{IdApp}.xml"); XmlNodeList nodes = xmlDocument.DocumentElement?.SelectNodes("/applicants/applicant"); if (nodes != null) { foreach (XmlNode node in nodes) { firstName.SendKeys(node.SelectSingleNode("FirstName")?.InnerText); lastName.SendKeys(node.SelectSingleNode("LastName")?.InnerText); lastNameBirthday.SendKeys(node.SelectSingleNode("LastNameBirthday")?.InnerText); dateOfBirthday.SendKeys(node.SelectSingleNode("DateOfBirthday")?.InnerText); placeOfBirthday.SendKeys(node.SelectSingleNode("PlaceOfBirthday")?.InnerText); countryOfBirthday.SendKeys(node.SelectSingleNode("CountryOfBirthday")?.InnerText); currentNat.SendKeys(node.SelectSingleNode("CurrentNat")?.InnerText); originalNat.SendKeys(node.SelectSingleNode("OriginalNat")?.InnerText); var sexState = node.SelectSingleNode("Sex")?.InnerText; if (sexState != null && sexState == "M") { driver.FindElement(By.Id(FormHelper.SexMaleCheckbox)).Click(); } else if (sexState != null && sexState == "F") { driver.FindElement(By.Id(FormHelper.SexFemaleCheckbox)).Click(); } var martialStatus = node.SelectSingleNode("MartialStatus")?.InnerText; if (martialStatus != null && martialStatus == "KP") { driver.FindElement(By.Id(FormHelper.MartialStatusSingleCheckbox)).Click(); } else if (martialStatus != null && martialStatus == "ZZ") { driver.FindElement(By.Id(FormHelper.MartialStatusMarriedCheckbox)).Click(); } else if (martialStatus != null && martialStatus == "SP") { driver.FindElement(By.Id(FormHelper.MartialStatusSeparatedCheckbox)).Click(); } else if (martialStatus != null && martialStatus == "RR") { driver.FindElement(By.Id(FormHelper.MartialStatusDivorcedCheckbox)).Click(); } else if (martialStatus != null && martialStatus == "WW") { driver.FindElement(By.Id(FormHelper.MartialStatusWidowerCheckbox)).Click(); } else if (martialStatus != null && martialStatus == "IN") { driver.FindElement(By.Id(FormHelper.MartialStatusOtherCheckbox)).Click(); } nationalId.SendKeys(node.SelectSingleNode("NationalId")?.InnerText); var typeOfDocument = node.SelectSingleNode("TypeOfTravelDocument")?.InnerText; if (typeOfDocument != null && typeOfDocument == "1") { driver.FindElement(By.Id(FormHelper.TypeOfTravelDocumentOriginalCheckbox)) .Click(); } else if (typeOfDocument != null && typeOfDocument == "2") { driver.FindElement(By.Id(FormHelper.TypeOfTravelDocumentDiplomaticCheckbox)) .Click(); } else if (typeOfDocument != null && typeOfDocument == "3") { driver.FindElement(By.Id(FormHelper.TypeOfTravelDocumentServiceCheckbox)) .Click(); } else if (typeOfDocument != null && typeOfDocument == "4") { driver.FindElement(By.Id(FormHelper.TypeOfTravelDocumentOfficialCheckbox)) .Click(); } else if (typeOfDocument != null && typeOfDocument == "5") { driver.FindElement(By.Id(FormHelper.TypeOfTravelDocumentSpecialCheckbox)) .Click(); } else if (typeOfDocument != null && typeOfDocument == "6") { driver.FindElement(By.Id(FormHelper.TypeOfTravelDocumentOtherCheckbox)) .Click(); } numberOfTravelDoc.SendKeys( node.SelectSingleNode("NumberOfTravelDocument")?.InnerText); numberOfTravelDateIssue.SendKeys( node.SelectSingleNode("NumberOfTravelDocumentDateIssue")?.InnerText); numberOfTravelValid.SendKeys( node.SelectSingleNode("NumberOfTravelDocumentValidUntil")?.InnerText); numberOfTravelIssuedBy.SendKeys( node.SelectSingleNode("NumberOfTravelDocumentIssuedBy")?.InnerText); driver.FindElement(By.Id(FormHelper.MinorDoesnotAppliedCheckbox)).Click(); appCountry.SendKeys(node.SelectSingleNode("ApplicantCountry")?.InnerText); appState.SendKeys(node.SelectSingleNode("ApplicantState")?.InnerText); appPostalCode.SendKeys(node.SelectSingleNode("ApplicantPostalCode")?.InnerText); appAddress.SendKeys(node.SelectSingleNode("ApplicantAddress")?.InnerText); appEmail.SendKeys(node.SelectSingleNode("ApplicantEmail")?.InnerText); appPhoneCode.SendKeys(node.SelectSingleNode("ApplicantPhoneCode")?.InnerText); appPhone.SendKeys(node.SelectSingleNode("ApplicantPhone")?.InnerText); appPlace.SendKeys(node.SelectSingleNode("ApplicantPlace")?.InnerText); driver.FindElement(By.Id(FormHelper.OtherResidenceCheckbox)).Click(); var curOccupation = node.SelectSingleNode("CurrentOccupation")?.InnerText; if (curOccupation != null && curOccupation == "08") { driver.FindElement(By.Id(FormHelper.CurrentOccupationSelect)).SendKeys("08"); } else if (curOccupation != null && curOccupation == "30") { driver.FindElement(By.Id(FormHelper.CurrentOccupationSelect)).SendKeys("30"); } else if (curOccupation != null && curOccupation == "33") { driver.FindElement(By.Id(FormHelper.CurrentOccupationSelect)).SendKeys("33"); } else { driver.FindElement(By.Id(FormHelper.CurrentOccupationSelect)) .SendKeys(curOccupation); } var curOccupationType = node.SelectSingleNode("CurrentOcupationType")?.InnerText; if (curOccupationType != null && curOccupationType == "PRA") { driver.FindElement(By.Id(FormHelper.CurrentOccupationAddressEmployerCheckbox)) .Click(); } else if (curOccupationType != null && curOccupationType == "UCZ") { driver.FindElement(By.Id(FormHelper.CurrentOccupationAddressSchoolCheckbox)) .Click(); } curOcupState.SendKeys(node.SelectSingleNode("CurrentOccupationState")?.InnerText); curOcupProvince.SendKeys( node.SelectSingleNode("CurrentOccupationProvince")?.InnerText); curOcupPlace.SendKeys(node.SelectSingleNode("CurrentOccupationPlace")?.InnerText); curOcupPostalCode.SendKeys( node.SelectSingleNode("CurrentOccupationPostalCode")?.InnerText); curOcupAddress.SendKeys( node.SelectSingleNode("CurrentOccupationAddress")?.InnerText); curOcupPhoneCode.SendKeys( node.SelectSingleNode("CurrentOccupationPhoneCode")?.InnerText); curOcupPhone.SendKeys(node.SelectSingleNode("CurrentOccupationPhone")?.InnerText); curOcupName.SendKeys(node.SelectSingleNode("CurrentOccupationName")?.InnerText); curOcupEmail.SendKeys(node.SelectSingleNode("CurrentOccupationEmail")?.InnerText); curOcupFaxCode.SendKeys( node.SelectSingleNode("CurrentOccupationFaxCode")?.InnerText); curOcupFax.SendKeys(node.SelectSingleNode("CurrentOccupationFax")?.InnerText); driver.FindElement(By.Id(FormHelper.MainPurposeTourismCheckbox)).Click(); driver.FindElement(By.Id(FormHelper.MainPurposeCulturalCheckbox)).Click(); driver.FindElement(By.Id(FormHelper.MainPurposeVisitToFamilyCheckbox)).Click(); destinationCountry.SendKeys( node.SelectSingleNode("DestinationCountry")?.InnerText); firstEntry.SendKeys(node.SelectSingleNode("FirstEntryCountry")?.InnerText); var numberOfEnter = node.SelectSingleNode("NumberOfEntries")?.InnerText; if (numberOfEnter != null && numberOfEnter == "1") { driver.FindElement(By.Id(FormHelper.NumberOfEntriesSingleCheckbox)).Click(); } else if (numberOfEnter != null && numberOfEnter == "2") { driver.FindElement(By.Id(FormHelper.NumberOfEntriesTwoCheckbox)).Click(); } else if (numberOfEnter != null && numberOfEnter == "3") { driver.FindElement(By.Id(FormHelper.NumberOfEntriesMultiCheckbox)).Click(); } duration.SendKeys(node.SelectSingleNode("Duration")?.InnerText); arrDate.SendKeys(node.SelectSingleNode("ArriveDate")?.InnerText); deparDate.SendKeys(node.SelectSingleNode("DepartureDate")?.InnerText); var otherShengen = node.SelectSingleNode("OtherShengenVisas")?.InnerText; if (otherShengen != null && otherShengen == "Yes") { driver.FindElement(By.Id(FormHelper.OtherShengenVisasCheckbox)).Click(); driver.FindElement(By.Id(FormHelper.OtherShengenVisasFirstInInput)) .SendKeys(node.SelectSingleNode("OtherShengenVisasFirstIn")?.InnerText); driver.FindElement(By.Id(FormHelper.OtherShengenVisasFirstOutInInput)) .SendKeys(node.SelectSingleNode("OtherShengenVisasFirstOut")?.InnerText); } driver.FindElement(By.Id("cp_f_chkNiedotyczy28")).Click(); var recPersonType = node.SelectSingleNode("ReceivingPersonType")?.InnerText; if (recPersonType != null && recPersonType == "1") { driver.FindElement(By.Id(FormHelper.ReceivingPersonFirmCheckbox)).Click(); driver.FindElement(By.Id(FormHelper.ReceivingPersonName)) .SendKeys(node.SelectSingleNode("ReceivingPersonName")?.InnerText); } else if (recPersonType != null && recPersonType == "2") { driver.FindElement(By.Id(FormHelper.ReceivingPersonLifeCheckbox)).Click(); driver.FindElement(By.Id(FormHelper.ReceivingPersonFirstName)) .SendKeys(node.SelectSingleNode("ReceivingPersonFirstName")?.InnerText); driver.FindElement(By.Id(FormHelper.ReceivingPersonLastName)) .SendKeys(node.SelectSingleNode("ReceivingPersonLastName")?.InnerText); } recCountry.SendKeys(node.SelectSingleNode("ReceivingPersonCountry")?.InnerText); // todo: rewrite this driver.FindElement(By.Id(FormHelper.ReceivingPersonCity)) .SendKeys(node.SelectSingleNode("ReceivingPersonCity")?.InnerText); driver.FindElement(By.Id(FormHelper.ReceivingPersonPostalCode)) .SendKeys(node.SelectSingleNode("ReceivingPersonPostalCode")?.InnerText); driver.FindElement(By.Id(FormHelper.ReceivingPersonPhonePrefix)) .SendKeys(node.SelectSingleNode("ReceivingPersonPhonePrefix")?.InnerText); driver.FindElement(By.Id(FormHelper.ReceivingPersonPhone)) .SendKeys(node.SelectSingleNode("ReceivingPersonPhone")?.InnerText); driver.FindElement(By.Id(FormHelper.ReceivingPersonFaxPrefix)) .SendKeys(node.SelectSingleNode("ReceivingPersonFaxPrefix")?.InnerText); driver.FindElement(By.Id(FormHelper.ReceivingPersonFax)) .SendKeys(node.SelectSingleNode("ReceivingPersonFax")?.InnerText); driver.FindElement(By.Id(FormHelper.ReceivingPersonAddress)) .SendKeys(node.SelectSingleNode("ReceivingPersonAddress")?.InnerText); driver.FindElement(By.Id(FormHelper.ReceivingPersonHouseNumber)) .SendKeys(node.SelectSingleNode("ReceivingPersonHouseNumber")?.InnerText); driver.FindElement(By.Id(FormHelper.ReceivingPersonFlatNumber)) .SendKeys(node.SelectSingleNode("ReceivingPersonFlatNumber")?.InnerText); driver.FindElement(By.Id(FormHelper.ReceivingPersonEmail)) .SendKeys(node.SelectSingleNode("ReceivingPersonEmail")?.InnerText); driver.FindElement(By.Id(FormHelper.HowsPayCheckbox)).Click(); driver.FindElement(By.Id(FormHelper.PayCash)).Click(); driver.FindElement(By.Id(FormHelper.PayCard)).Click(); driver.FindElement(By.Id(FormHelper.PayAcom)).Click(); driver.FindElement(By.Id(FormHelper.EuDoesApplied)).Click(); driver.FindElement(By.Id(FormHelper.IAgreeFirst)).Click(); driver.FindElement(By.Id(FormHelper.IAgreeSecond)).Click(); driver.FindElement(By.Id(FormHelper.IAgreeLast)).Click(); Thread.Sleep(60000); driver.FindElement(By.Id("cp_f_cmdDalej")).Click(); Thread.Sleep(60000); driver.FindElement(By.Id("cp_f_cmdZakoncz")).Click(); } } Thread.Sleep(5000); driver.FindElement(By.Id("cp_btnPobierz")).Click(); Thread.Sleep(20000); driver.Quit(); IsDone = true; } } else { _helper.Log(ConsoleColor.Red, "[ERROR] Capta code return error!"); IsDone = false; } } #endregion } else { _helper.Log(ConsoleColor.Cyan, "[ERROR] Cant find captha image!"); IsDone = false; } } catch (Exception ex) { _helper.Log(ConsoleColor.Red, "[ERROR {BROWSER}] " + ex.Message); IsDone = false; } return(IsDone); }
public AntiCaptchaOnlineApi() { _anticaptcha = new AntiCaptcha(GetApiKeyAnticaptcha()); }
/// <inheritdoc /> public override void Process(BotData data) { if (!data.GlobalSettings.Captchas.BypassBalanceCheck) { base.Process(data); } var localUrl = ReplaceValues(url, data); data.Log(new LogEntry("Downloading image...", Colors.White)); // Download captcha var captchaFile = string.Format("Captchas/captcha{0}.jpg", data.BotNumber); if (base64) { var bytes = Convert.FromBase64String(localUrl); using (var imageFile = new FileStream(captchaFile, FileMode.Create)) { imageFile.Write(bytes, 0, bytes.Length); imageFile.Flush(); } } else if (sendScreenshot && data.Screenshots.Count > 0) { Bitmap image = new Bitmap(data.Screenshots.Last()); image.Save(captchaFile); } else { try { DownloadRemoteImageFile(captchaFile, data, localUrl); } catch (Exception ex) { data.Log(new LogEntry(ex.Message, Colors.Tomato)); throw; } } string response = ""; CaptchaServices.CaptchaService service = null; var bitmap = new Bitmap(captchaFile); try { switch (data.GlobalSettings.Captchas.CurrentService) { case CaptchaService.ImageTypers: service = new ImageTyperz(data.GlobalSettings.Captchas.ImageTypToken, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.AntiCaptcha: service = new AntiCaptcha(data.GlobalSettings.Captchas.AntiCapToken, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.DBC: service = new DeathByCaptcha(data.GlobalSettings.Captchas.DBCUser, data.GlobalSettings.Captchas.DBCPass, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.TwoCaptcha: service = new TwoCaptcha(data.GlobalSettings.Captchas.TwoCapToken, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.RuCaptcha: service = new RuCaptcha(data.GlobalSettings.Captchas.RuCapToken, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.DeCaptcher: service = new DeCaptcher(data.GlobalSettings.Captchas.DCUser, data.GlobalSettings.Captchas.DCPass, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.AZCaptcha: service = new AZCaptcha(data.GlobalSettings.Captchas.AZCapToken, data.GlobalSettings.Captchas.Timeout); break; case CaptchaService.CaptchasIO: service = new CaptchasIO(data.GlobalSettings.Captchas.CIOToken, data.GlobalSettings.Captchas.Timeout); break; default: throw new Exception("This service cannot solve normal captchas!"); } response = service.SolveCaptcha(bitmap); } catch (Exception ex) { data.Log(new LogEntry(ex.Message, Colors.Tomato)); throw; } finally { bitmap.Dispose(); } data.CaptchaService = service; data.Log(response == "" ? new LogEntry("Couldn't get a response from the service", Colors.Tomato) : new LogEntry("Succesfully got the response: " + response, Colors.GreenYellow)); if (VariableName != "") { data.Log(new LogEntry("Response stored in variable: " + variableName, Colors.White)); data.Variables.Set(new CVar(variableName, response)); } }
public AntiCaptchaOnlineApi(IProgress <string> progressLog) { _anticaptcha = new AntiCaptcha(GetApiKeyAnticaptcha()); _progressLog = progressLog; }
public static async Task <CaptchaStruct> GetNoCaptcha(string agKey) { return(await Task.Run(() => { lock (Locker) { try { var challenge = string.Empty; while (true) { WebDriver = Utils.WebDriver; try { if (!Utils.IsPermit) { return new CaptchaStruct { Answer = "Error message: Stopped", Challenge = string.Empty, Date = DateTime.Now }; } WebDriver.Navigate() .GoToUrl("https://www.quora.com/"); WebDriver.FindElement(By.XPath("//a[@class='signup_email_link']")).Click(); new WebDriverWait(WebDriver, TimeSpan.FromSeconds(60)).Until( driver => ExpectedConditions.FrameToBeAvailableAndSwitchToIt( By.XPath("//iframe[@title='виджет reCAPTCHA']"))); WebDriver.SwitchTo() .Frame(WebDriver.FindElement(By.XPath("//iframe[@title='виджет reCAPTCHA']"))); new WebDriverWait(WebDriver, TimeSpan.FromSeconds(60)).Until( driver => ExpectedConditions.ElementToBeClickable( By.XPath("//div[@class='recaptcha-checkbox-checkmark']"))); WebDriver.FindElement(By.XPath("//div[@class='recaptcha-checkbox-checkmark']")).Click(); WebDriver.SwitchTo().DefaultContent(); var cap = new AntiCaptcha(agKey) { CheckDelay = 2000, ServiceProvider = Utils.AntigateService == "rucaptcha.com" ? "rucaptcha.com" : "antigate.com" }; cap.Parameters.Set("id_constructor", "23"); Task.Delay(3000).Wait(); new WebDriverWait(WebDriver, TimeSpan.FromSeconds(60)).Until( driver => ExpectedConditions.FrameToBeAvailableAndSwitchToIt( By.XPath("//iframe[@title='проверка recaptcha']"))); WebDriver.SwitchTo() .Frame(WebDriver.FindElement(By.XPath("//iframe[@title='проверка recaptcha']"))); var imageSelectors = new WebDriverWait(WebDriver, TimeSpan.FromSeconds(15)).Until( driver => driver.FindElements(By.XPath("//div[@class='rc-image-tile-wrapper']"))); if (imageSelectors.Count != 9) { throw new Exception(); } imageSelectors[2].Click(); imageSelectors[4].Click(); imageSelectors[7].Click(); WebDriver.FindElement(By.Id("recaptcha-verify-button")).Click(); Task.Delay(1000).Wait(); while (true) { if (!Utils.IsPermit) { return new CaptchaStruct { Answer = "Error message: Stopped", Challenge = string.Empty, Date = DateTime.Now }; } var img = GetCaptchaImg(WebDriver).Result; if (img.First().Value == null) { break; } cap.Parameters.Set("textinstructions", img.First().Key); var answ = cap.GetAnswer(img.First().Value); if (string.IsNullOrEmpty(answ)) { img.First().Value.Save("filename.png", ImageFormat.Png); continue; } var picNums = Regex.Matches(answ, @"\d"); imageSelectors = WebDriver.FindElements(By.XPath("//div[@class='rc-image-tile-wrapper']")); try { foreach (var z in from object x in picNums select int.Parse(x.ToString()) - 1) { imageSelectors[z].Click(); } } catch (Exception) { challenge = WebDriverQueue.FindElement(By.Id("recaptcha-token")) .GetAttribute("value"); break; } WebDriver.FindElement(By.Id("recaptcha-verify-button")).Click(); Task.Delay(2000).Wait(); var incorrect = WebDriver.FindElement( By.XPath("//div[@class='rc-imageselect-incorrect-response']")) .Text; var more = WebDriver.FindElement( By.XPath("//div[@class='rc-imageselect-error-select-more']")) .Text; var one = WebDriver.FindElement(By.XPath("//div[@class='rc-imageselect-error-select-one']")) .Text; if (incorrect == "" && more == "" && one == "") { challenge = WebDriver.FindElement(By.Id("recaptcha-token")) .GetAttribute("value"); break; } //cap.FalseCaptcha(); if (one != "" || more != "") { break; } } if (string.IsNullOrEmpty(challenge)) { continue; } break; } catch (Exception ex) { throw new Exception(ex.Message); } } return new CaptchaStruct { Answer = string.Empty, Challenge = challenge, Date = DateTime.Now }; } catch (Exception ex) { return new CaptchaStruct { Answer = $"Error message: {ex.Message}", Challenge = "" }; } } })); }
public ResolveCaptcha() { AntiCaptcha = new AntiCaptcha(APIKEY); }
public static string SendCaptcha(string captcha_img) { var anticap = new AntiCaptcha("3e9d563d32f126b9fbda5e385a60a4c6"); anticap.CheckDelay = 10000; anticap.CheckRetryCount = 20; anticap.SlotRetry = 5; anticap.SlotRetryDelay = 800; // дополнительные API параметры (см: http://antigate.com/panel.php?action=api) anticap.Parameters.Set("min_len", "2"); anticap.Parameters.Set("max_len", "10"); byte[] img; using (var web = new WebClient()) { img = web.DownloadData(captcha_img); } try { // отправляем файл и ждем ответа string answer = anticap.GetAnswer(img); return answer; } catch (AntigateErrorException aee) { // Antigate ответил одной из документированных в API ошибкой return null; } catch (Exception ex) { // возникло исключение return null; } }
private static async Task <string> GetCaptchaResult(ISearchContext webDriver, string agKey) { try { byte[] mainImgBytes; IWebElement type; var cap = new AntiCaptcha(agKey) { CheckDelay = 2000, SlotRetry = 0, SlotRetryDelay = 0 }; cap.Parameters.Set("recaptcha", "1"); try { type = webDriver.FindElement(By.XPath("//img[@class='rc-image-tile-33']")); mainImgBytes = await GetMainImg(type.GetAttribute("src") /*, false*/); } catch (Exception) { try { type = webDriver.FindElement(By.XPath("//img[@class='rc-image-tile-42']")); mainImgBytes = await GetMainImg(type.GetAttribute("src") /*, true*/); } catch (Exception) { type = webDriver.FindElement(By.XPath("//img[@class='rc-image-tile-44']")); mainImgBytes = await GetMainImg(type.GetAttribute("src") /*, true*/); } } if (mainImgBytes == null) { throw new Exception("Image file size too big"); } if (!IsElementPresent(By.XPath("//div[@class='rc-imageselect-desc-no-canonical']"), webDriver)) { //Text instructions var descPlain = webDriver.FindElement( By.XPath("//div[@class='rc-imageselect-desc']")).GetAttribute("innerHTML"); cap.Parameters.Set("textinstructions", Regex.Match(descPlain, @"(?<=<strong>).+(?=</strong>)").Value); //Candidate image Base64 var candidateSrcBase64 = webDriver.FindElement(By.Id("rc-imageselect-candidate")) .FindElement(By.TagName("img")) .GetAttribute("src"); cap.Parameters.Set("imginstructions", candidateSrcBase64.Replace("data:image/jpeg;base64,", string.Empty)); } else { //Text instructions var descPlain = webDriver.FindElement( By.XPath("//div[@class='rc-imageselect-desc-no-canonical']")).GetAttribute("innerHTML"); cap.Parameters.Set("textinstructions", Regex.Match(descPlain, @"(?<=<strong>).+(?=</strong>)").Value); } var res = await cap.GetAnswer(mainImgBytes, Utils.CancelToken.Token); if (string.IsNullOrEmpty(res)) { cap.FalseCaptcha(); } return(res); } catch (Exception ex) { if (ex.Message.Contains("no such element")) { throw new Exception("Wrong captcha type"); } throw new Exception(ex.Message); } }