private FMPriceItem GetFMPriceItem(string name, string price) { FMPriceItem item = null; if (name.IsNotNullOrEmpty()) { item = new FMPriceItem() { Name = name, Price = price.GetDouble(), Unit = @"500克" }; } return(item); }
private IEnumerable <FMPriceItem> GetPrices(IHtmlDocument doc) { //var table = doc.All.Where( m => m.LocalName == "table" // && m.TextContent.Contains("苏州市部分农贸市场零售均价") // ).FirstOrDefault(); //var tds = doc.All.Where(m => m.LocalName == "td" // && (m.ClassList.Contains("xl65") // || m.ClassList.Contains("xl66")) // ).ToList(); var trs = doc.QuerySelectorAll("div#table table tbody tr"); // 找出价格行 bool pinmingFound = false; // 找到品名行 foreach (var tr in trs) { if (pinmingFound) { string name1 = tr.Children[0].TextContent; string price1 = tr.Children[1].TextContent; string name2 = tr.Children[2].TextContent; string price2 = tr.Children[3].TextContent; FMPriceItem item1 = GetFMPriceItem(name1, price1); FMPriceItem item2 = GetFMPriceItem(name2, price2); if (item1 != null) { yield return(item1); } if (item2 != null) { yield return(item2); } } else { pinmingFound = tr.FirstElementChild.TextContent == "品名"; } Console.Write("."); } }