Exemplo n.º 1
0
        string geoLocation = "";    // Координаты через - ","


        /*string water;
         * string gas;
         * string sewerage;
         * string heating;*/
        ////////////////////////////////////


        public VRXParsePage(string idRecord)
        {
            /* if (idRecord == "213354_36018")
             * {
             *   idRecord = idRecord;
             * }
             * if (idRecord == "344195_36006")
             * {
             *   idRecord = idRecord;
             * }*/
            idRecord = pageRecordParse + idRecord + ".htm";
            IdRecord = idRecord;


            //Console.WriteLine("Загрузка " + idRecord);
            HtmlDocument record = Download(idRecord);

            // Если html получить не удалось
            if (record == null)
            {
                int i = 0; // кол-во попыток для запроса html
                while (record == null || i < 10)
                {
                    record = Download(idRecord);
                    i++;
                }

                if (record == null)
                {
                    Thread t = Thread.CurrentThread;
                    t.Abort();
                    VRXParse.SaveError("(VRXParsePage) Не удалось открыть страницу " + idRecord);
                }
            }
            //Console.WriteLine("Загрцзка " + idRecord + " окончена");
            //Console.WriteLine("");

            GetObj(record);
            GetSeller(record);
            SaveRecord();
            count++;
            //VRX.ConsoleWriteLineClear("Прочитано: " + count + " объяв. на стр. " + VRXParse.countPageParse, VRX.left, VRX.top);
        }
Exemplo n.º 2
0
        void GetObj(HtmlDocument record)
        {
            //HtmlNode bodyNode = record.DocumentNode.SelectSingleNode("//ul[@class='product-list']");
            HtmlNodeCollection pageNodes = record.DocumentNode.SelectNodes("//table[@class='text tbldetail']/tr/td");

            if (pageNodes != null)
            {
                for (int j = 0; j < pageNodes.Count; j++)
                {
                    //Console.WriteLine(j + ") " + pageNodes[j].InnerText);

                    //string str777 = pageNodes[j].InnerHtml;
                    if ((pageNodes[j].InnerText).IndexOf("Фотогалерея") > -1)
                    {
                        GetImg(pageNodes[j + 1].InnerHtml);

                        //str777 = pageNodes[j].Attributes["img"].Value;

                        /*var img = pageNodes[j].DocumentNode.SelectNodes("//img[@src]");
                         * // you can also check if link is not null
                         * var href = link.Attributes["href"].Value;*/
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Объект:") > -1)
                    {
                        GetSubject(pageNodes[j + 1].InnerText);
                    }

                    // Расположение
                    if ((pageNodes[j].InnerText).IndexOf("Месторасположение:") > -1)
                    {
                        GetLocation(pageNodes[j + 1].InnerText);
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Адрес:") > -1)
                    {
                        GetAddress(pageNodes[j + 1].InnerText);
                    }

                    // площадь
                    if ((pageNodes[j].InnerText).IndexOf("Площадь:") == 0)
                    {
                        if ((pageNodes[j + 1].InnerText).IndexOf("/") > -1)
                        {
                            GetArea(pageNodes[j + 1].InnerText);
                        }
                        else
                        {
                            //GetArea(pageNodes[j + 1].InnerText);
                        }
                    }


                    // Этажность
                    if ((pageNodes[j].InnerText).IndexOf("Этаж/этажей:") > -1)
                    {
                        GetFloor(pageNodes[j + 1].InnerText);
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Материал:") > -1)
                    {
                        GetMaterial(pageNodes[j + 1].InnerText);
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Тип:") > -1)
                    {
                        GetType(pageNodes[j + 1].InnerText);
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Участок:") > -1)
                    {
                        GetSector(pageNodes[j + 1].InnerText);
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Стоимость:") > -1)
                    {
                        GetPrise(pageNodes[j + 1].InnerText);
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Изменено:") > -1)
                    {
                        GetEditDate(pageNodes[j + 1].InnerText);
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Операция:") > -1)
                    {
                        GetOperation(pageNodes[j + 1].InnerText);
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Комнат:") > -1)
                    {
                        GetFlats(pageNodes[j + 1].InnerText);
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Балкон:") > -1)
                    {
                        GetBalcony(pageNodes[j + 1].InnerText);
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Санузел:") > -1)
                    {
                        bathroom = pageNodes[j + 1].InnerText;
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Наличие телефона:") > -1)
                    {
                        phone = pageNodes[j + 1].InnerText;
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Подвал:") > -1)
                    {
                        basement = pageNodes[j + 1].InnerText;
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Электричество:") > -1)
                    {
                        electricit = pageNodes[j + 1].InnerText;
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Комментарий к заявке:") > -1)
                    {
                        GetComment(pageNodes[j + 1].InnerText);
                    }

                    if ((pageNodes[j].InnerText).IndexOf("Фирма продавец:") > -1)
                    {
                        GetFirm(pageNodes[j + 1].InnerText);
                    }

                    if ((pageNodes[j].InnerText).IndexOf("На карте:") > -1)
                    {
                        GetGeolocation(pageNodes[j + 1].InnerHtml);
                    }
                }
            }
            else
            {
                VRXParse.SaveError(" (VRXParsePage) Не получена таблица из HTML: " + IdRecord);
            }

            //HtmlNode bodyNode = record.DocumentNode.SelectSingleNode("//ul[@class='product-list']");
            HtmlNodeCollection pageNodesPhoto = record.DocumentNode.SelectNodes("//table[@id='fotoview']/tr/td[@id='fotoview_list']");


            if (pageNodesPhoto != null)
            {
                for (int j = 0; j < pageNodesPhoto.Count; j++)
                {
                    var str = pageNodesPhoto[j].InnerHtml;

                    //string str777 = pageNodes[j].InnerHtml;
                    if ((pageNodesPhoto[j].InnerHtml).IndexOf("mfoto") > -1)
                    {
                        GetImg(pageNodesPhoto[j].InnerHtml);
                    }
                }
            }


            //int i = 0;
        }