private static bool pollingKeyWordDetails(String connString, ChromeDriver driver, KeyWordInfo keyWord, Boolean isAds, Int32 page) { Boolean success = false; ReadOnlyCollection <IWebElement> elements = getElements(isAds, driver); if (elements != null) { foreach (IWebElement element in elements) { KeyWordDetailInfo keyWordDetail = new KeyWordDetailInfo(driver, element, keyWord, isAds, page); if (success = !keyWordDetail.HasError) { success = DataOperation.UpdateSearchResult(connString, keyWordDetail); } //Utilities.Utilities.Log(message: success ? $"." : "X", isWriteLine: false, addTime: false); } } return(success); }
internal static void PollingSearchByAPI(string connString, string code) { Boolean success = false; Utilities.Utilities.Log(message: "Polling Google Search from API ... ", isWriteLine: false, addTime: true); List <KeyWordInfo> keyWrods = DataOperation.GetKeyWords(connString, code); Utilities.Utilities.Log(message: $"[{keyWrods.Count}]", isWriteLine: true); String category = String.Empty; CustomsearchService customSearchService = new CustomsearchService(new BaseClientService.Initializer { ApiKey = API_KEY }); foreach (KeyWordInfo keyWord in keyWrods) { if (category != keyWord.Category) { Utilities.Utilities.Log(message: $"[{keyWord.Category}] ... ", isWriteLine: true, addTime: true); category = keyWord.Category; } Utilities.Utilities.Log(message: $"Polling [{keyWord.KeyWordToSearch}] -> ", isWriteLine: false, addTime: true); CseResource.ListRequest listRequest = customSearchService.Cse.List(keyWord.KeyWordToSearch); listRequest.Cx = SEARCH_ID; listRequest.Filter = CseResource.ListRequest.FilterEnum.Value1; listRequest.Start = 0; listRequest.Num = 10; listRequest.LowRange = "100"; listRequest.HighRange = "200"; IList <Result> paging = new List <Result>(); Int32 page = 0; Int32 count = 0; Int32 countError = 0; success = true; do { listRequest.Start = page * 10 + 1; Utilities.Utilities.Log(message: $"[{++page}]", isWriteLine: false, addTime: false); try { paging = listRequest.Execute().Items; if (paging != null) { foreach (Result item in paging) { if (item.FileFormat == null) { ++count; KeyWordDetailInfo keyWordDetail = new KeyWordDetailInfo(item, keyWord, false, page); if (success = !keyWordDetail.HasError) { success = DataOperation.UpdateSearchResult(connString, keyWordDetail); } if (!success) { ++countError; } } } } } catch (Google.GoogleApiException ex) { Utilities.Utilities.Log(message: $"[Error]\n{ex.Message}", isWriteLine: true, addTime: true, feedLine: true); success = false; break; } } while (page < 10 && paging != null); if (success) { keyWord.Pages = page; success = DataOperation.UpdateSearchHistory(connString, keyWord); Utilities.Utilities.Log(message: $"[Done] [{count}/{countError}]", isWriteLine: true, addTime: false); } } }