コード例 #1
0
 public virtual List<DishesTyep> GetDish(List<DishesTyep> dishesTyepList)
 {
     foreach (var dishType in dishesTyepList)
     {
         var nextPageUrl = GetDishUrl(dishType);
         while (!string.IsNullOrEmpty(nextPageUrl))
         {
             var baseCollectionSite = new BaseCollectionSite(nextPageUrl);
             var dishTypeHtmlNode = baseCollectionSite.BaseHtmlNode;
             var dishesNodeList = dishTypeHtmlNode.SelectNodes(DishPath());
             if (dishesNodeList == null)
             {
                 continue;
             }
             SaveIngDish(dishType.DishesTypeName, string.Empty);
             foreach (var dishesNode in dishesNodeList)
             {
                 var dishes = GetDishes(dishType, dishesNode);
                 if (dishes.IsNull)
                 {
                     continue;
                 }
                 dishType.DishesList.Add(dishes);
                 SaveIngDish(dishType.DishesTypeName, dishes.DishesName);
             }
             nextPageUrl = GetNextPageUrl(dishTypeHtmlNode);
         }
     }
     FinishSaveDish();
     return dishesTyepList;
 }
コード例 #2
0
 protected override List<Maticsoft.Model.DishesTyep> GetSiteDishTypeList()
 {
     var baseCollectionSite = new BaseCollectionSite(PageUrl);
     var dishTypeStr = baseCollectionSite.BaseHtmlNodeByGBK.InnerText.Replace("jsonp78(", string.Empty).Replace(@")", string.Empty).Trim();
     var mainResult = JsonHelper.JsonToObj<MainResult>(dishTypeStr) ?? new MainResult();
     var dishesTypeList = new List<Maticsoft.Model.DishesTyep>();
     foreach (var dishItem in mainResult.List)
     {
         var dishesType = new Maticsoft.Model.DishesTyep();
         dishesType.BusinessID = StoreInfo.OldStoreId;
         dishesType.DishesTypeID = Guid.NewGuid().ToString();
         dishesType.DishesTypeName = dishItem.cat.Name;
         var dishesList = (
                          from dishesTaoBao in dishItem.item
                          select new DishesEntity()
                          {
                              DishesID = Guid.NewGuid().ToString(),
                              DishesName = dishesTaoBao.DishName,
                              DishesUnit = string.IsNullOrEmpty(dishesTaoBao.DishesUnit) ? "份" : dishesTaoBao.DishesUnit,
                              DishesMoney = dishesTaoBao.itemPrice,
                              BusinessID = StoreInfo.OldStoreId,
                              DishesTypeID = dishesType.DishesTypeID,
                          }).ToList();
         dishesType.DishesList.AddRange(dishesList);
         dishesTypeList.Add(dishesType);
     }
     return dishesTypeList;
 }
コード例 #3
0
 protected void CollectionPicture(StoreInfo storeInfo, BusPhotoAlbumTable busphotoAlbumTable, string albumType)
 {
     var picPath = ".//div[@class='w_100']/div[@class='w_100 fleft ']/div[@class='w980 center']/div[@class='w980 fleft']/div[@class='shopmid']/div[@class='shopw']/div[@id='pic_list']/div[@class='item_box']/div[@class='item masonry_brick']/div[@class='item_t']/div[@class='img']/a/img";
     if (albumType == "h")
     {
         picPath = ".//div[@class='w_100']/div[@class='w_100 fleft ']/div[@class='w980 center']/div[@class='w980 fleft']/div[@class='shopmid']/div[@class='shopw']/div[@class='pic_huanj']/ul/li/div[@class='hjtp_box']/div[@class='hjtpw center']/div[@class='hjtpw fleft']/a/img";
     }
     for (int i = 1; i < 500; i++)
     {
         var baseCollectionSite = new BaseCollectionSite(string.Format(PageUrl, storeInfo.Fid, albumType, i));
         var pictureHtmlNode = baseCollectionSite.BaseHtmlNode;
         var pictureNodeList = pictureHtmlNode.SelectNodes(picPath);
         if (pictureNodeList == null)
         {
             break;
         }
         if (pictureNodeList.Count <= 1)
         {
             var picNode = pictureNodeList.FirstOrDefault();
             if (picNode == null)
             {
                 break;
             }
             var picturePathName = picNode.Attributes["src"].Value;
             if (picturePathName.Contains("bctp_28.gif"))
             {
                 break;
             }
         }
         //SavePicture(storeInfo, pictureNodeList, busphotoAlbumTable);
     }
 }
コード例 #4
0
 public HtmlNodeCollection GetDishInfoList(HtmlNode dishTypeNode)
 {
     var baseCollectionSite = new BaseCollectionSite(PageUrl);
     var dishNodeList = dishTypeNode.SelectNodes(DishesPath());
     if (dishNodeList == null || dishNodeList.Count <= 0)
     {
         return new HtmlNodeCollection(null);
     }
     var scripNode = dishTypeNode.SelectSingleNode(@"./../../../../..//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);
                 }
             }
         }
     }
     return dishNodeList;
 }
コード例 #5
0
 protected override void CollectionPicture(StoreInfo storeInfo, BusPhotoAlbumTable busphotoAlbumTable, string albumType)
 {
     var baseCollectionSite = new BaseCollectionSite(string.Format(PageUrl, storeInfo.Fid, albumType));
     var pictureHtmlNode = baseCollectionSite.BaseHtmlNode;
     var pictureNodeList = pictureHtmlNode.SelectNodes(PicturePath);
     if (pictureNodeList == null)
     {
         return;
     }
     SavePicture(storeInfo, pictureNodeList, busphotoAlbumTable);
 }
コード例 #6
0
        public void GetPicture(Maticsoft.Model.StoreInfo storeInfo)
        {
            DeletePicture(storeInfo.storeId);
            const string picturePath = @".//div[@class='dc_center']/div[@class='xq_top']/div[@class='xq_top_left']/div[@class='fangda']/div[@id='preview']/div[@id='spec-n5']/div[@id='spec-list']/ul[@class='list-h']/li/img";
            var baseCollectionSite = new BaseCollectionSite(string.Format(PageUrl, storeInfo.Fid));
            var pictureHtmlNode = baseCollectionSite.BaseHtmlNode;
            var pictureNodeList = pictureHtmlNode.SelectNodes(picturePath);

            var busphotoAlbumTable = BuildBusPhotoAlbumTable(storeInfo);
            SavePicture(storeInfo, pictureNodeList, busphotoAlbumTable);
        }
コード例 #7
0
        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;
        }
コード例 #8
0
 protected virtual HtmlAgilityPack.HtmlNodeCollection GetSiteDishTypeList()
 {
     var baseCollectionSite = new BaseCollectionSite(PageUrl);
     var dishTypeHtmlNode = baseCollectionSite.BaseHtmlNode;
     var dishNodeList = dishTypeHtmlNode.SelectNodes(DishesTypePath());
     return dishNodeList;
 }
コード例 #9
0
 protected virtual void CollectionPicture(Maticsoft.Model.StoreInfo storeInfo, Maticsoft.Model.BusPhotoAlbumTable busphotoAlbumTable, string albumType)
 {
     var baseCollectionSite = new BaseCollectionSite(string.Format(PageUrl, storeInfo.Fid));
     var pictureHtmlNode = baseCollectionSite.BaseHtmlNode;
     var pictureNodeList = pictureHtmlNode.SelectNodes(PicturePath);
     SavePicture(storeInfo, pictureNodeList, busphotoAlbumTable);
 }
コード例 #10
0
        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;
        }
コード例 #11
0
        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;
        }
コード例 #12
0
 protected virtual IEnumerable<HtmlNode> GetCatalogueList()
 {
     var baseCollectionSite = new BaseCollectionSite(PageUrl);
     var catalogueHtmlNode = baseCollectionSite.BaseHtmlNode;
     if (catalogueHtmlNode == null)
     {
         return null;
     }
     GetPageNum(catalogueHtmlNode);
     var restaurantList = catalogueHtmlNode.SelectNodes(CataloguePath);
     return restaurantList;
 }
コード例 #13
0
        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("&nbsp;", 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;
        }
コード例 #14
0
 private void button1_Click(object sender, EventArgs e)
 {
     var baseCollectionSite = new BaseCollectionSite(textBox4.Text);
     BaseHtmlNode = baseCollectionSite.BaseHtmlNode;
     textBox1.Text = BaseHtmlNode.InnerHtml;
 }
コード例 #15
0
 protected virtual List<Maticsoft.Model.StorePicture> PicturesBody(Maticsoft.Model.StoreInfo storeInfo,
     Maticsoft.Model.BusPhotoAlbum busphotoAlbumTable, string albumType, ref int pageNum)
 {
     var baseCollectionSite = new BaseCollectionSite(GetPageUrl(storeInfo, albumType, pageNum));
     var pictureHtmlNode = baseCollectionSite.BaseHtmlNode;
     var pictureNodeList = pictureHtmlNode.SelectNodes(PicturePath(albumType));
     if (FilterPage(pictureNodeList, ref pageNum))
     {
         return new List<Maticsoft.Model.StorePicture>();
     }
     return SavePicture(storeInfo, pictureNodeList, busphotoAlbumTable);
 }
コード例 #16
0
 protected virtual void BuildBaseStore()
 {
     var baseCollectionSite = new BaseCollectionSite(PageUrl);
     StoreInfoHtmlNode = baseCollectionSite.BaseHtmlNode.SelectSingleNode(StorePath);
 }
コード例 #17
0
 protected override void BuildBaseStore()
 {
     var baseCollectionSite = new BaseCollectionSite(PageUrl);
     StoreInfoHtmlNode = baseCollectionSite.BaseHtmlNodeByGBK.SelectSingleNode(StorePath);
 }