Esempio n. 1
0
        public async Task ProcessSearch()
        {
            try
            {
                var searchItems = await GetActiveSearches();


                foreach (var item in searchItems)
                {
                    var options = new ChromeOptions();
                    options.PageLoadStrategy = PageLoadStrategy.Eager;
                    IWebDriver browser = new ChromeDriver(options);

                    browser.Navigate().GoToUrl(item.Url);

                    var content    = browser.PageSource;
                    var resultList = await MobileDeParser.GetDataFromHtml(content);

                    var list = new List <Ad>();

                    foreach (var resultItem in resultList)
                    {
                        list.Add(new Ad
                        {
                            OwnerId       = item.OwnerId,
                            AddressInfo   = resultItem.AddressInfo,
                            AdLink        = resultItem.AdLink,
                            AdSource      = resultItem.AdSource,
                            AdTitle       = resultItem.AdTitle,
                            CarInfo       = resultItem.CarInfo,
                            CreatedAtInfo = resultItem.CreatedAtInfo,
                            Email         = resultItem.Email,
                            ImageLink     = resultItem.ImageLink,
                            Phone         = resultItem.Phone,
                            PriceInfo     = resultItem.PriceInfo,
                            ProviderAdId  = resultItem.ProviderAdId
                        });
                    }

                    var postResults =
                        PostAds(item.OwnerId.ToString(), list);


                    await Task.WhenAll(postResults);

                    browser.Close();
                }
            }
            catch (Exception ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(ex.Message);
                Console.ResetColor();
            }
        }
Esempio n. 2
0
        public async Task ProcessSearch()
        {
            try
            {
                var searchItems = await GetActiveSearches();

                var random = new Random();
                var steps  = random.Next(5, 50);

                for (int i = 0; i < steps; i++)
                {
                    var p1 = random.Next(0, searchItems.Count - 1);
                    var p2 = random.Next(0, searchItems.Count - 1);

                    var a = searchItems[p1];
                    var b = searchItems[p2];

                    searchItems[p1] = b;
                    searchItems[p2] = a;
                }


                foreach (var item in searchItems)
                {
                    browser.Navigate().GoToUrl(item.Url);

                    //var fakeHuman = Task.CompletedTask; //ActLikeHuman(browser);

                    var content    = browser.PageSource;
                    var resultList = await MobileDeParser.GetDataFromHtml(content);

                    var list = new List <Ad>();

                    foreach (var resultItem in resultList)
                    {
                        list.Add(new Ad
                        {
                            OwnerId       = item.OwnerId,
                            AddressInfo   = resultItem.AddressInfo,
                            AdLink        = resultItem.AdLink,
                            AdSource      = resultItem.AdSource,
                            AdTitle       = resultItem.AdTitle,
                            CarInfo       = resultItem.CarInfo,
                            CreatedAtInfo = resultItem.CreatedAtInfo,
                            Email         = resultItem.Email,
                            ImageLink     = resultItem.ImageLink,
                            Phone         = resultItem.Phone,
                            PriceInfo     = resultItem.PriceInfo,
                            ProviderAdId  = resultItem.ProviderAdId
                        });
                    }

                    var postResults =
                        PostAds(item.OwnerId.ToString(), list);



                    if (list.Count == 0)
                    {
                        browser.Quit();

                        if (browser.GetType() == typeof(FirefoxDriver))
                        {
                            browser = new ChromeDriver();
                        }
                        else
                        {
                            browser = new FirefoxDriver();
                        }

                        return;
                    }



                    browser.Quit();
                    if (browser.GetType() == typeof(FirefoxDriver))
                    {
                        var options = new ChromeOptions();
                        options.PageLoadStrategy = PageLoadStrategy.Eager;
                        browser = new ChromeDriver(options);
                    }
                    else
                    {
                        var options = new FirefoxOptions();
                        options.PageLoadStrategy = PageLoadStrategy.Eager;

                        browser = new FirefoxDriver(options);
                    }

                    await Task.WhenAll(postResults);
                }
            }
            catch (Exception ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(ex.Message);
                Console.ResetColor();
                this.browser.Close();
            }
        }