Exemple #1
0
        public ActionResult <List <VacasaRentals> > Get([FromQuery] VacasaGet qs)
        {
            SetScrapingUrl(qs.City.ToLower());
            var HtmlDoc  = _web.Load(_scrapingUrl);
            var mainNode = HtmlDoc.DocumentNode.SelectNodes("//div[contains(@class, 'unit-listing')]");
            List <VacasaRentals> scrapingElements = ProcessScraping(mainNode, qs.City);

            if (qs.MinPrice > 0 || qs.MaxPrice > 0)
            {
                scrapingElements = FilterByPrice(qs, scrapingElements);
            }

            return(scrapingElements);
        }
Exemple #2
0
        // Remove elements by price
        private List <VacasaRentals> FilterByPrice(VacasaGet qs, List <VacasaRentals> scrapingElements)
        {
            for (int i = 0; i <= scrapingElements.Count - 1; i++)
            {
                if (qs.MinPrice > 0 && Decimal.Compare(qs.MinPrice, scrapingElements[i].MinPrice) < 0)
                {
                    scrapingElements.RemoveAt(i);
                }

                if (qs.MaxPrice > 0 && Decimal.Compare(qs.MaxPrice, scrapingElements[i].MaxPrice) < 0)
                {
                    scrapingElements.RemoveAt(i);
                }
            }

            return(scrapingElements);
        }