Example #1
0
        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++;
            }
        }
Example #2
0
File: Elem.cs Project: Gtripper/ppk
 public Elem(string cad_num, OKS oks)
 {
     this.oks     = oks;
     this.cad_num = cad_num;
 }
Example #3
0
        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;
        }
Example #4
0
        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);
        }