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