public List<DishType> GetDishType() { var dishTypeList = new List<DishType>(); var dishesTypePath = @"//*[@id='menu']/[@class='clearboth']"; var baseCollectionSite = new BaseCollectionSite(PageUrl); var dishTypeHtmlNode = baseCollectionSite.BaseHtmlNode; var dishTypeNodeList = dishTypeHtmlNode.SelectNodes(dishesTypePath); if (dishTypeNodeList == null || dishTypeNodeList.Count <= 0) { return dishTypeList; } foreach (var dishTypeNode in dishTypeNodeList) { var dishTypeID = Guid.NewGuid(); var dishTypeName = dishTypeNode.InnerText; var dishTypeInfo = new DishType { PkID = dishTypeID, DishName = dishTypeName }; dishTypeList.Add(dishTypeInfo); var dishNode = dishTypeNode.NextSibling; int dishID = 1; while (dishNode != null) { var dishInfoList = dishNode.SelectNodes("//li"); if (dishInfoList == null) { break; } foreach (var dishInfo in dishInfoList) { var dishNameNode = dishInfo.SelectSingleNode(".//p/strong"); if (dishNameNode != null) { var dishName = dishNameNode.Attributes["title"].Value; var dishPriceNode = dishInfo.SelectSingleNode(".//p/span"); var dishImg = dishInfo.SelectSingleNode(".//p/img"); var dishPrice = dishPriceNode != null ? dishInfo.InnerText.Replace("¥", string.Empty).Replace("元", string.Empty).Trim() : string.Empty; } } dishNode = dishNode.NextSibling; } } return dishTypeList; }
public List<DishType> GetDishType() { var dishTypeList = new List<DishType>(); const string dishesTypePath = @".//div[@class='shop-wrap ']/div[@class='main']/div[@id='dish-tag']/div[@class='tab-container']/div[@class='rec-dishes tab-item active']/div/ul/li"; var baseCollectionSite = new BaseCollectionSite(PageUrl); var dishTypeHtmlNode = baseCollectionSite.BaseHtmlNode; var dishNodeList = dishTypeHtmlNode.SelectNodes(dishesTypePath); if (dishNodeList == null || dishNodeList.Count <= 0) { return dishTypeList; } var scripNode = baseCollectionSite.BaseHtmlNode.SelectSingleNode(@".//div[@class='shop-wrap ']/div[@class='main']/div[@id='dish-tag']/div[@class='tab-container']/div[@class='rec-dishes tab-item active']/div[@class='pic-list J_toggle']/ul/script"); if (scripNode != null && !string.IsNullOrWhiteSpace(scripNode.InnerText)) { var liNodeList = baseCollectionSite.BaseHtmlNodeCollection(scripNode.InnerText); if (liNodeList != null) { var dishLiList = liNodeList.SelectNodes(".//li"); if (dishLiList != null) { foreach (var dishLi in dishLiList) { dishNodeList.Add(dishLi); } } } } int dishID = 1; var dishTypeID = Guid.NewGuid(); const string dishTypeName = @"推荐菜"; var dishTypeInfo = new DishType { PkID = dishTypeID, DishName = dishTypeName, DishesList = new List<int>(), }; foreach (var dishNode in dishNodeList) { var dishNameNode = dishNode.SelectSingleNode("./div[@class='pic-name']/a"); var dishPriceNode = dishNode.SelectSingleNode("./div[@class='pic-name']/span"); var dishImg = dishNode.SelectSingleNode(".//a/img"); if (dishNameNode == null) { continue; } var dishName = dishNameNode.InnerText; var dishPrice = dishPriceNode == null ? "0" : dishPriceNode.InnerText.Replace("¥", string.Empty); var dianPingDishes = new DianPingDishes(); dianPingDishes.DishID = dishID; dianPingDishes.DishTypeID = dishTypeID.ToString(); if (string.IsNullOrWhiteSpace(dishName)) { continue; } if (string.IsNullOrWhiteSpace(dishPrice)) { dishPrice = "0"; } dianPingDishes.DishName = dishName; dianPingDishes.DishesMoney = dishPrice; if (dishImg != null) { if (dishImg.Attributes.Contains("src")) { dianPingDishes.PictureName = dishImg.Attributes["src"].Value; } else if (dishImg.Attributes.Contains("data-src")) { dianPingDishes.PictureName = dishImg.Attributes["data-src"].Value; } } _generalEntityList.Add(dianPingDishes); dishTypeInfo.DishesList.Add(dianPingDishes.DishID); dishID += 1; } dishTypeList.Add(dishTypeInfo); return dishTypeList; }
public List<DishType> GetDishType() { var dishTypeList = new List<DishType>(); var dishesTypePath = @".//div[@align='center']/div[@id='container']/div[@id='content']/div[@id='menu']/h3[@class='clearboth']"; var baseCollectionSite = new BaseCollectionSite(PageUrl); var dishTypeHtmlNode = baseCollectionSite.BaseHtmlNode; var dishTypeNodeList = dishTypeHtmlNode.SelectNodes(dishesTypePath); if (dishTypeNodeList == null || dishTypeNodeList.Count <= 0) { return dishTypeList; } int dishID = 1; var dishTypeID = Guid.NewGuid(); foreach (var dishTypeNode in dishTypeNodeList) { dishTypeID = Guid.NewGuid(); var dishTypeName = dishTypeNode.InnerText; var dishTypeInfo = new DishType { PkID = dishTypeID, DishName = dishTypeName, DishesList = new List<int>(), }; var dishNode = dishTypeNode.NextSibling; while (dishNode != null) { if (dishNode.InnerHtml.Contains("返回顶部")) { break; } var dishInfoList = dishNode.SelectNodes(".//li"); dishNode = dishNode.NextSibling; if (dishInfoList == null) { continue; } foreach (var dishInfo in dishInfoList) { var dishNameNode = dishInfo.SelectSingleNode(".//p/strong"); if (dishNameNode != null) { var dishName = dishNameNode.Attributes["title"].Value; if (string.IsNullOrEmpty(dishName)) { continue; } var dishPriceNode = dishInfo.SelectSingleNode(".//p/span"); var dishImg = dishInfo.SelectSingleNode("./img"); var dishPrice = dishPriceNode != null ? dishPriceNode.InnerText.Replace("¥", string.Empty).Replace("元", string.Empty).Replace(" ", string.Empty).Trim() : string.Empty; var cyooyDishes = new CyooyDishes(); cyooyDishes.DishID = dishID; cyooyDishes.DishTypeID = dishTypeID.ToString(); cyooyDishes.DishName = dishName; cyooyDishes.DishesMoney = dishPrice; cyooyDishes.DishesUnit = "份"; if (dishImg != null) { cyooyDishes.PictureName = @"http://www.cyooy.com" + dishImg.Attributes["src"].Value; } _generalEntityList.Add(cyooyDishes); dishTypeInfo.DishesList.Add(cyooyDishes.DishID); dishID += 1; continue; } dishNameNode = dishInfo.SelectSingleNode(".//div[@class='foodName']"); if (dishNameNode != null) { var dishName = dishNameNode.Attributes["title"].Value; var dishPriceNode = dishInfo.SelectSingleNode(".//div[@class='price']"); var dishPrice = dishPriceNode != null ? dishPriceNode.InnerText.Replace("¥", string.Empty).Replace("元", string.Empty).Trim() : string.Empty; var cyooyDishes = new CyooyDishes(); cyooyDishes.DishID = dishID; cyooyDishes.DishTypeID = dishTypeID.ToString(); cyooyDishes.DishName = dishName; cyooyDishes.DishesMoney = dishPrice; cyooyDishes.DishesUnit = "份"; _generalEntityList.Add(cyooyDishes); dishTypeInfo.DishesList.Add(cyooyDishes.DishID); dishID += 1; } } } dishTypeList.Add(dishTypeInfo); } return dishTypeList; }
public List<DishType> GetDishType() { var dishTypeList = new List<DishType>(); var dishesTypePath = @".//div[@class='dc_center']/div[@class='xq_ment']/div[@class='xq_ment_left ']/div/div[@class='dc_list']/ul/li"; var baseCollectionSite = new BaseCollectionSite(PageUrl); var dishTypeHtmlNode = baseCollectionSite.BaseHtmlNode; var dishNodeList = dishTypeHtmlNode.SelectNodes(dishesTypePath); if (dishNodeList == null || dishNodeList.Count <= 0) { return dishTypeList; } int dishID = 1; var dishTypeID = Guid.NewGuid(); var dishTypeName = @"推荐菜"; var dishTypeInfo = new DishType { PkID = dishTypeID, DishName = dishTypeName, DishesList = new List<int>(), }; foreach (var dishNode in dishNodeList) { var dishNameNode = dishNode.SelectSingleNode(".//h3/a"); var dishPriceNode = dishNode.SelectSingleNode(".//h4/span[1]/font"); var dishImg = dishNode.SelectSingleNode(".//div[@class='dc_l_img']/a/img"); if (dishNameNode == null || dishPriceNode == null) { continue; } var dishName = dishNameNode.InnerText; var dishPrice = dishPriceNode.InnerText.Replace("¥", string.Empty); var echieleDishes = new EchieleDishes(); echieleDishes.DishID = dishID; echieleDishes.DishTypeID = dishTypeID.ToString(); echieleDishes.DishName = dishName; echieleDishes.DishesMoney = dishPrice; if (dishImg != null) { echieleDishes.PictureName = dishImg.Attributes["src"].Value; } _generalEntityList.Add(echieleDishes); dishTypeInfo.DishesList.Add(echieleDishes.DishID); dishID += 1; } dishTypeList.Add(dishTypeInfo); return dishTypeList; }
public DishType GetDishTypeEntity(DishTypeEntity dishTypeEntity) { var dishType = new DishType { PkID = Guid.NewGuid(), DishName = dishTypeEntity.C, dishNum = dishTypeEntity.D }; dishType.DishesList.AddRange(dishTypeEntity.E); return dishType; }