private static IEnumerable <Commerciante> EstraiInfo(IEnumerable <HtmlNode> list) { var result = new List <Commerciante>(); foreach (var htmlNode in list) { var item = new Commerciante(); var name = htmlNode.CssSelect("div.item_sx div.item_head div.org.fn h2.rgs a").FirstOrDefault(); if (name != null) { item.Nome = name.InnerText.Ripulisci(); item.LinkPagineGialle = name.Attributes["href"].Value; } var indirizzo = htmlNode.CssSelect("div.item_sx div.address").FirstOrDefault(); if (indirizzo != null) { var street = indirizzo.CssSelect("span.street-address").FirstOrDefault(); if (street != null) { item.Indirizzo = street.InnerText.Ripulisci(); } var locality = indirizzo.CssSelect("div.locality").FirstOrDefault(); if (locality != null) { var rx = new Regex(@"^\d{5}"); var loc = locality.InnerText.Ripulisci(); var cap = rx.Match(loc).Value; item.Cap = cap; item.Citta = rx.Replace(loc, String.Empty).Trim(); } var telefono = indirizzo.CssSelect("div.tel").FirstOrDefault(); if (telefono != null) { foreach (var contatto in telefono.ChildNodes) { if (contatto != null) { item.Contatti += contatto.InnerText.Ripulisci(); } } } } var link = htmlNode.CssSelect("div.item_sx div.link a").FirstOrDefault(); if (link != null) { item.Link = link.Attributes.Where(x => x.Name == "href").Select(x => x.Value).FirstOrDefault(); } var desc = htmlNode.CssSelect("div.item_sx div.text p.abstract").FirstOrDefault(); if (desc != null) { item.Descrizione = desc.InnerText.Ripulisci(); } result.Add(item); } return(result); }
private static IEnumerable<Commerciante> EstraiInfo(IEnumerable<HtmlNode> list) { var result = new List<Commerciante>(); foreach (var htmlNode in list) { var item = new Commerciante(); var name = htmlNode.CssSelect("div.item_sx div.item_head div.org.fn h2.rgs a").FirstOrDefault(); if (name != null) { item.Nome = name.InnerText.Ripulisci(); item.LinkPagineGialle = name.Attributes["href"].Value; } var indirizzo = htmlNode.CssSelect("div.item_sx div.address").FirstOrDefault(); if (indirizzo != null) { var street = indirizzo.CssSelect("span.street-address").FirstOrDefault(); if (street != null) item.Indirizzo = street.InnerText.Ripulisci(); var locality = indirizzo.CssSelect("div.locality").FirstOrDefault(); if (locality != null) { var rx = new Regex(@"^\d{5}"); var loc = locality.InnerText.Ripulisci(); var cap = rx.Match(loc).Value; item.Cap = cap; item.Citta = rx.Replace(loc, String.Empty).Trim(); } var telefono = indirizzo.CssSelect("div.tel").FirstOrDefault(); if (telefono != null) { foreach (var contatto in telefono.ChildNodes) { if (contatto != null) item.Contatti += contatto.InnerText.Ripulisci(); } } } var link = htmlNode.CssSelect("div.item_sx div.link a").FirstOrDefault(); if (link != null) item.Link = link.Attributes.Where(x => x.Name == "href").Select(x => x.Value).FirstOrDefault(); var desc = htmlNode.CssSelect("div.item_sx div.text p.abstract").FirstOrDefault(); if (desc != null) item.Descrizione = desc.InnerText.Ripulisci(); result.Add(item); } return result; }