Building ParseBuildingFromHtml(BuildingJsonInfo info, String html) { var start = "<table id=\"BuildData\">"; var end = "</table>"; var startIndex = html.IndexOf(start); var endIndex = html.IndexOf(end, startIndex) + end.Length; var tableXml = html.Substring(startIndex, endIndex - startIndex); var building = new Building() { Name = info.name, Latitude = info.lat, Longitude = info.lng }; HtmlDocument document = new HtmlDocument(); document.LoadHtml(tableXml); HtmlNodeCollection collection = document.DocumentNode.SelectNodes("//tr"); foreach (HtmlNode property in collection) { var trs = property.Descendants("td"); var name = trs.First().InnerText.Trim(); var value = trs.Last().FirstChild.InnerText.Trim(); if (String.IsNullOrEmpty(value)) { value = trs.Last().InnerText.Trim(); value = value.Replace("\t", ""); value = value.Replace("\n", ""); } SetBuilding(building, name, value); } return building; }
async Task<Building> GetBuilding(BuildingJsonInfo info) { var buildingUrl = "http://mskguru.ru/novostroyki/" + info.id + "-" + info.url; var html = await HttpHelper.HttpGet(buildingUrl); var building = ParseBuildingFromHtml(info, html); building.Url = buildingUrl; return building; }