public List <string> GetBingSearchSentences(string SearchWord) { var client = new HttpClient(); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey); var url = "https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search?" + "q=" + SearchWord + "&count=50&offset=0&" + "&customconfig=" + customConfigId; var httpResponseMessage = client.GetAsync(url).Result; var responseContent = httpResponseMessage.Content.ReadAsStringAsync().Result; BingCustomSearchResponse response = JsonConvert.DeserializeObject <BingCustomSearchResponse>(responseContent); List <string> names = new List <string>(); List <string> snippets = new List <string>(); for (int i = 0; i < response?.webPages?.value?.Count(); i++) { var webPage = response.webPages.value[i]; if (!hasUnwantedWords(webPage.snippet) && hasExpectedWord(webPage.snippet, SearchWord)) { names.Add(webPage.name); snippets.Add(webPage.snippet); } } return(snippets.Distinct().ToList()); }
static void Main(string[] args) { //var subscriptionKey = "YOUR-SUBSCRIPTION-KEY"; //var customConfigId = "YOUR-CUSTOM-CONFIG-ID"; string subscriptionKey = "ebc25e481b50416bac331e703ac7f1e1"; string customConfigId = "f7e6d23c-b3ed-4e4a-9bd2-7099e90d2140"; var searchTerm = "Twitter"; var url = "https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search?" + "q=" + searchTerm + "&customconfig=" + customConfigId; var client = new HttpClient(); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey); var httpResponseMessage = client.GetAsync(url).Result; var responseContent = httpResponseMessage.Content.ReadAsStringAsync().Result; BingCustomSearchResponse response = JsonConvert.DeserializeObject <BingCustomSearchResponse>(responseContent); for (int i = 0; i < response.webPages.value.Length; i++) { var webPage = response.webPages.value[i]; Console.WriteLine("name: " + webPage.name); Console.WriteLine("url: " + webPage.url); Console.WriteLine("displayUrl: " + webPage.displayUrl); Console.WriteLine("snippet: " + webPage.snippet); Console.WriteLine("dateLastCrawled: " + webPage.dateLastCrawled); Console.WriteLine(); } }
public static List <CustomSearchModel> ToWebArticleList(BingCustomSearchResponse response) { var articles = new List <CustomSearchModel>(); foreach (var webPage in response.webPages.value) { articles.Add(ToCustomSearchResult(webPage)); } return(articles); }
/// <summary> /// Gets metadata for a particular entity based on its name using Bing Entity Search /// </summary> /// <param name="entityName">The name of the entity to extract data for.</param> /// <returns>Asynchronous task that returns entity data. </returns> public async static Task <OutputRecord.OutputRecordData> GetEntityMetadata(string entityName, ILogger log) { var uri = bingApiEndpoint + "?q=" + entityName + " Fraud" + "&customconfig=" + customconfig + "&mkt=en-us&count=10&offset=0&safesearch=Moderate"; var result = new OutputRecord.OutputRecordData(); using (var client = new HttpClient()) using (var request = new HttpRequestMessage { Method = HttpMethod.Get, RequestUri = new Uri(uri) }) { request.Headers.Add("Ocp-Apim-Subscription-Key", key); HttpResponseMessage responseMsg = await client.SendAsync(request); string responseBody = await responseMsg?.Content?.ReadAsStringAsync(); BingCustomSearchResponse bingResult = JsonConvert.DeserializeObject <BingCustomSearchResponse>(responseBody); log.LogInformation("Custom Search function: Response result." + bingResult.ToString()); // BingResponse bingResult = JsonConvert.DeserializeObject<BingResponse>(responseBody); if (bingResult != null) { // In addition to the list of entities that could match the name, for simplicity let's return information // for the top match as additional metadata at the root object. // return AddTopEntityMetadata(bingResult.Entities?.Value); for (int i = 0; i < bingResult.webPages.value.Length; i++) { var webPage = bingResult.webPages.value[i]; Console.WriteLine("name: " + webPage.name); Console.WriteLine("url: " + webPage.url); Console.WriteLine("displayUrl: " + webPage.displayUrl); Console.WriteLine("snippet: " + webPage.snippet); Console.WriteLine("dateLastCrawled: " + webPage.dateLastCrawled); Console.WriteLine(); } return(AddTopEntityMetadata(bingResult.webPages?.value)); } } return(result); }
public override async Task <List <ResourceDTO> > Search(string searchText) { var url = "https://api.bing.microsoft.com/v7.0/custom/search" + $"?q={searchText}" + $"&customconfig={ConfigID}" + $"&mkt=en-US"; _client.AddHeaders("Ocp-Apim-Subscription-Key", SubscriptionKey); var httpResponseMessage = await _client.GetAsync(url); if (!httpResponseMessage.IsSuccessStatusCode) { throw new Exception($"{nameof(BingCustomSeacher)} doesn't work"); } var responseContent = httpResponseMessage.Content.ReadAsStringAsync().Result; BingCustomSearchResponse response = JsonConvert.DeserializeObject <BingCustomSearchResponse>(responseContent); if (response.webPages == null) { throw new Exception($"{nameof(YandexCustomSeacher)} doesn't find anything"); } List <ResourceDTO> resources = new List <ResourceDTO>(); for (int i = 0; i < response.webPages.value.Length; i++) { var webPage = response.webPages.value[i]; resources.Add(new ResourceDTO { UrlAddress = webPage.url, Title = webPage.name, Description = webPage.snippet }); } return(resources); }
public Task <SearchResultCollection> SearchAsync(string query) { var subscriptionKey = AppConfig.Configuration["BingSearch:SubscriptionKey"]; var customConfigId = AppConfig.Configuration["BingSearch:CustomConfigId"]; var searchTerm = query; var url = "https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search?" + "q=" + searchTerm + "&customconfig=" + customConfigId; var client = new HttpClient(); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey); var httpResponseMessage = client.GetAsync(url).Result; var responseContent = httpResponseMessage.Content.ReadAsStringAsync().Result; BingCustomSearchResponse response = JsonConvert.DeserializeObject <BingCustomSearchResponse>(responseContent); Results = new List <SearchResult>(); for (int i = 0; i < response.webPages.value.Length; i++) { var webPage = response.webPages.value[i]; Results.Add(new SearchResult() { Title = webPage.name, Description = webPage.snippet, Link = webPage.url, Category = "" }); } var result = new SearchResultCollection(); result.Results = Results; return(Task.FromResult(result)); }
public List <string> GetSentences(string SearchWord) { List <string> Uses = new List <string>(); List <string> AllUses = new List <string>(); //Wordnik var client = new HttpClient(); var limit = 50; var urlW = "http://api.wordnik.com/v4/word.json/" + SearchWord + "/examples?includeDuplicates=false&useCanonical=false&skip=0&limit=" + limit + "&api_key=a2a73e7b926c924fad7001ca3111acd55af2ffabf50eb4ae5"; try { var httpResponseMessageW = client.GetAsync(urlW).Result; var responseContentW = httpResponseMessageW.Content.ReadAsStringAsync().Result; dynamic resp = JsonConvert.DeserializeObject(responseContentW); if (((JContainer)resp).HasValues && ((Newtonsoft.Json.Linq.JContainer)resp.examples).HasValues) { var respcount = 0; respcount = ((Newtonsoft.Json.Linq.JContainer)resp.examples).Count; for (int i = 0; i < respcount; i++) { if (!hasUnwantedWords(((JValue)(resp.examples[i].text)).Value.ToString())) { Uses.Add(((resp.examples[i].text).ToString()).Replace("_", "")); } } AllUses.AddRange(Uses.Distinct().ToList()); //Bing API Call client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey); var url = "https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search?" + "q=" + SearchWord + "&count=50&offset=0&" + "&customconfig=" + customConfigId; var httpResponseMessage = client.GetAsync(url).Result; var responseContent = httpResponseMessage.Content.ReadAsStringAsync().Result; BingCustomSearchResponse response = JsonConvert.DeserializeObject <BingCustomSearchResponse>(responseContent); List <string> names = new List <string>(); List <string> snippets = new List <string>(); for (int i = 0; i < response?.webPages?.value?.Count(); i++) { var webPage = response.webPages.value[i]; if (!hasUnwantedWords(webPage.snippet) && hasExpectedWord(webPage.snippet, SearchWord)) { names.Add(webPage.name); snippets.Add(webPage.snippet); } } AllUses.AddRange(snippets.Distinct().ToList()); return(AllUses); } else { AllUses = GetBingSearchSentences(SearchWord); return(AllUses); } } catch (Exception ex) { AllUses = GetBingSearchSentences(SearchWord); return(AllUses); } }