예제 #1
0
        private async Task <IEnumerable <ProductResponse> > GetProductListings(IEnumerable <ProductRequest> requests)
        {
            var helper   = new ScrapperHelper();
            var listings = await helper.GetProductList(requests);

            return(listings);
        }
예제 #2
0
        public IActionResult GetDataByCategory(string categoryName)
        {
            List <DataViewModel> dataList = new List <DataViewModel>();


            var mainObj        = HttpContext.Session.GetSession().MainObjects;
            var listChildItems = mainObj.Where(x => x.CategoryName.ToLower() == categoryName.ToLower()).FirstOrDefault();


            var categoryModel = new Categories();

            categoryModel.CategoryName = listChildItems.CategoryName;
            try
            {
                foreach (var child in listChildItems.Child)
                {
                    var model = new DataViewModel();


                    HtmlWeb      web      = new HtmlWeb();
                    HtmlDocument document = web.Load(child.ChildUrl);

                    //try for image
                    var itemsModel = new Items();
                    try
                    {
                        foreach (HtmlNode link in document.DocumentNode.SelectNodes("//img"))
                        {
                            var src = link.GetAttributeValue("src", "");
                            if (src.Contains("e_strukture"))
                            {
                                string completesource = AppSettings.Domain + src;
                                itemsModel.ItemImage = completesource;
                            }
                        }
                    }
                    catch (Exception e)
                    {
                    }



                    //try for rest of the data
                    try
                    {
                        foreach (HtmlNode data in document.DocumentNode.SelectNodes("//*[@size]"))
                        {
                            if (data.GetAttributeValue("size", "3") == "3")
                            {
                                var fontcolor = data.GetAttributeValue("color", "");
                                var findColor = ScrapperHelper.FindColor(fontcolor);

                                var cleanInnerText = ScrapperHelper.CleanInnerText(data.InnerText);
                                var split          = cleanInnerText.Split(" ", 2);

                                var itemcode = split[0];
                                var itename  = split[1];

                                itemsModel.ItemCode  = itemcode;
                                itemsModel.ItemName  = itename;
                                itemsModel.ItemColor = findColor;
                            }

                            if (data.GetAttributeValue("size", "2") == "2")
                            {
                                var cleanDescription = ScrapperHelper.CleanInnerText(data.InnerText);
                                itemsModel.ItemDesc = itemsModel.ItemDesc + cleanDescription;
                            }
                        }
                    }



                    catch (Exception e)
                    {
                    }

                    model.Category = categoryModel;
                    model.Items    = itemsModel;

                    SaveData(model);
                    dataList.Add(model);


                    //Lets save the data
                }


                return(Json(new { status = 200 }));
            }
            catch (Exception e)
            {
                return(Json(new { status = 200 }));
            }
        }
예제 #3
0
 private async void LoadProducts()
 {
     var helper   = new ScrapperHelper();
     var keywords = new[] { "ps4", "ps3" };
     //var products = await helper.GetProductList(keywords);
 }