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(); } }
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(); } }