Ejemplo n.º 1
0
        public WatchedItemDataEntry(WatchedItemEntry watchedItemEntry)
        {
            WatchedItemEntry = watchedItemEntry;

            switch (WatchedItemEntry.Domain)
            {
            case CrawlerDomain.Surugaya:
                DataProxy = new SurugayaItem();
                break;

            case CrawlerDomain.Mandarake:
                DataProxy = new MandarakeItem();
                break;

            case CrawlerDomain.Yahoo:
                DataProxy = new YahooItem();
                break;

            case CrawlerDomain.Mercari:
                DataProxy = new MercariItem();
                break;

            case CrawlerDomain.Lashinbang:
                DataProxy = new LashinbangItem();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            DataProxy.Id       = WatchedItemEntry.Id;
            DataProxy.ImageUrl = WatchedItemEntry.ImageUrl;
            DataProxy.Price    = CrawlerConstants.InvalidPrice;
            DataProxy.Name     = WatchedItemEntry.Name;
        }
Ejemplo n.º 2
0
        public List <MercariItem> Search(MercariSearchCond cond)
        {
            // Create a new result list
            List <MercariItem> result = new List <MercariItem>();

            // Generate conditions url
            string url = search_url + cond.ToString();

            // Send the http request and wait for response
            // With sync operations (Wait for result)
            HttpResponseMessage responseMessage = httpClient.GetAsync(url).Result;

            // Get the result
            if (responseMessage.StatusCode == System.Net.HttpStatusCode.OK)
            {
                Stream html = responseMessage.Content.ReadAsStreamAsync().Result;

                // Analyze the HTML response
                HtmlDocument document = new HtmlDocument();
                document.Load(html);

                HtmlNode           contentNode    = document.DocumentNode.SelectSingleNode("//div[@class='items-box-content clearfix']");
                HtmlNodeCollection itemCollection = contentNode.SelectNodes("./section[@class='items-box']");

                foreach (HtmlNode item in itemCollection)
                {
                    HtmlNode aNode        = item.SelectSingleNode("./a");
                    HtmlNode ItemBoxBody  = aNode.SelectSingleNode("./div[@class='items-box-body']");
                    HtmlNode ItemBoxName  = ItemBoxBody.SelectSingleNode("./h3");
                    HtmlNode ItemBoxNum   = ItemBoxBody.SelectSingleNode("./div");
                    HtmlNode ItemBoxPrice = ItemBoxNum.SelectSingleNode("./div[@class='items-box-price font-5']");

                    MercariItem listitem = new MercariItem(ItemBoxName.InnerText, ItemBoxPrice.InnerText);
                    result.Add(listitem);
                }
            }

            return(result);
        }