static void ExcelFromValue() { string path = @"C:\Users\vtsvetkov\source\repos\pkk_5_parser\pkk_5_parser\resourses\Correct.xlsx"; Application app = new Application(); app.Visible = true; app.Workbooks.Open(path); Worksheet workSheet = app.ActiveSheet; int iter = 2; workSheet.Cells[1, "A"] = "CAD_NUM_Original"; workSheet.Cells[1, "B"] = "CAD_NUM"; workSheet.Cells[1, "C"] = "Тип"; workSheet.Cells[1, "D"] = "Наименование"; workSheet.Cells[1, "E"] = "Адрес"; workSheet.Cells[1, "F"] = "Форма собственности"; workSheet.Cells[1, "G"] = "Общая площадь"; workSheet.Cells[1, "H"] = "Общая этажность"; workSheet.Cells[1, "I"] = "Подземная этажность"; workSheet.Cells[1, "J"] = "Назначение"; workSheet.Cells[1, "L"] = "IncorrectCads"; workSheet.Cells[1, "P"] = "Value"; workSheet.Range["A1", "J1"].Font.Bold = 1; workSheet.Columns["A:P"].AutoFit(); while (workSheet.Cells[iter, "A"].Value != null) { var val = workSheet.Cells[iter, "P"].Value; var cad = workSheet.Cells[iter, "A"].Value; if (val != null) { OKS oks = new OKS(val, cad); workSheet.Cells[iter, "A"] = cad; workSheet.Cells[iter, "B"] = oks.cad_num; workSheet.Cells[iter, "C"] = oks.type; workSheet.Cells[iter, "D"] = oks.name; workSheet.Cells[iter, "E"] = oks.adress; workSheet.Cells[iter, "F"] = oks.ownership; workSheet.Cells[iter, "G"] = oks.summaryArea; workSheet.Cells[iter, "H"] = oks.minFloors; workSheet.Cells[iter, "I"] = oks.maxFloors; workSheet.Cells[iter, "J"] = oks.numsOfUndergroundFloor; workSheet.Cells[iter, "K"] = oks.function; workSheet.Cells[iter, "L"] = oks.years; workSheet.Cells[iter, "P"] = oks.value; } Console.WriteLine(iter); iter++; } }
public Elem(string cad_num, OKS oks) { this.oks = oks; this.cad_num = cad_num; }
static void parserTest(string cad_num, string driverPath) { int cnt = 0; //string path = @"C:\Users\vtsvetkov\source\repos\pkk_5_parser"; IWebDriver driver = new ChromeDriver(driverPath); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); driver.Url = @"https://pkk5.rosreestr.ru/#x=1770771.834433252&y=10055441.599232893&z=3&app=search&opened=1"; Thread.Sleep(1000); IWebElement fr = driver.FindElement(By.CssSelector(@"#app-search-form > div > div > div > div > button")); Thread.Sleep(1000); fr.Click(); fr = driver.FindElement(By.CssSelector(@"#tag_5")); fr.Click(); try { int counter = 0; int cntr = 0; fr = driver.FindElement(By.CssSelector(@"#search-text")); fr.Clear(); fr.SendKeys(cad_num); Thread.Sleep(1000); driver.FindElement(By.CssSelector(@"#app-search-submit")).Click(); wait.Until(ExpectedConditions.ElementExists(By.CssSelector(@"#feature-oks-info > div"))); while (counter < 20) { Thread.Sleep(500); var pane = driver.FindElements(By.CssSelector(@"#feature-oks-info > div")); var val = Regex.Replace(pane[0].Text, @"(\r\n)", "#", RegexOptions.Compiled); var condition = Regex.Match(val, @"Тип:#([^#]+)#", RegexOptions.Compiled).Groups[1].Value; var cad_numFromPane = Regex.Match(val, @"Кад. номер:#([^#]+)#", RegexOptions.Compiled).Groups[1].Value; var equal = cad_num.Equals(cad_numFromPane); while (!equal) { Thread.Sleep(500); pane = driver.FindElements(By.CssSelector(@"#feature-oks-info > div")); cad_numFromPane = Regex.Match(val, @"Кад. номер:#([^#]+)#", RegexOptions.Compiled).Groups[1].Value; cntr++; if (cntr > 50) { break; } Console.WriteLine("тупняк " + cntr); } cntr = 0; if (!condition.Equals("-") && equal) { OKS oks = new OKS(val, cad_num); break; } else if (counter == 19) { OKS oks = new OKS(val, cad_num); counter++; } else { counter++; } } Thread.Sleep(500); cnt++; //Console.WriteLine(cnt + ") For CAD_NUM " + cad_num + " counter = " + counter); } catch (Exception e) { var name = e.GetType().Name; if (name.Equals("ArgumentOutOfRangeException") || name.Equals("WebDriverTimeoutException")) { OKS oks = new OKS(cad_num, e.GetType().Name, -999); } else { OKS oks = new OKS(cad_num, e.GetType().Name, -999); } //OKS oks = new OKS(cad_num, e.GetType().Name, "", "", "", "", "", "", "", ""); //elem[i].oks = oks; } driver.Close(); //return elem; }
static List <Elem> reSearchParser(List <string> reSearch, string driverPath) { var result = new List <Elem>(); //string path = @"C:\Users\vtsvetkov\source\repos\pkk_5_parser"; IWebDriver driver = new ChromeDriver(driverPath); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); driver.Url = @"https://pkk5.rosreestr.ru/#x=1770771.834433252&y=10055441.599232893&z=3&app=search&opened=1"; Thread.Sleep(1000); IWebElement fr = driver.FindElement(By.CssSelector(@"#app-search-form > div > div > div > div > button")); Thread.Sleep(1000); fr.Click(); fr = driver.FindElement(By.CssSelector(@"#tag_5")); fr.Click(); int countOfTry = 0; for (int i = 0; i < reSearch.Count; i++) { string cad_num = reSearch[i]; try { int counter = 0; int cntr = 0; fr = driver.FindElement(By.CssSelector(@"#search-text")); fr.Clear(); fr.SendKeys(cad_num); Thread.Sleep(1000); driver.FindElement(By.CssSelector(@"#app-search-submit")).Click(); wait.Until(ExpectedConditions.ElementExists(By.CssSelector(@"#feature-oks-info > div"))); while (counter < 20) { Thread.Sleep(500); var pane = driver.FindElements(By.CssSelector(@"#feature-oks-info > div")); var val = Regex.Replace(pane[0].Text, @"(\r\n)", "#", RegexOptions.Compiled); var condition = Regex.Match(val, @"Тип:#([^#]+)#", RegexOptions.Compiled).Groups[1].Value; var cad_numFromPane = Regex.Match(val, @"Кад. номер:#([^#]+)#", RegexOptions.Compiled).Groups[1].Value; var equal = cad_num.Equals(cad_numFromPane); while (!equal) { Thread.Sleep(500); driver.FindElement(By.CssSelector(@"#app-search-submit")).Click(); pane = driver.FindElements(By.CssSelector(@"#feature-oks-info > div")); cad_numFromPane = Regex.Match(val, @"Кад. номер:#([^#]+)#", RegexOptions.Compiled).Groups[1].Value; equal = cad_num.Equals(cad_numFromPane); cntr++; if (cntr > 50) { break; } Console.WriteLine("тупняк " + cntr); } cntr = 0; if (!condition.Equals("-") && equal) { OKS oks = new OKS(val, cad_num); result.Add(new Elem(reSearch[i], oks)); countOfTry = 0; break; } else { counter++; } } Thread.Sleep(500); } catch (Exception e) { if (countOfTry < 5) { countOfTry++; i--; } else { countOfTry = 0; var name = e.GetType().Name; if (name.Equals("ArgumentOutOfRangeException") || name.Equals("WebDriverTimeoutException")) { OKS oks = new OKS(cad_num, "cad_num doesn't exist", "", "", "", "", 0, 0, "", "", "", ""); result.Add(new Elem(reSearch[i], oks)); } else { OKS oks = new OKS(cad_num, e.GetType().Name, "", "", "", "", 0, 0, "", "", "", ""); result.Add(new Elem(reSearch[i], oks)); } } } } driver.Close(); return(result); }