コード例 #1
0
        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());
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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);
            }
        }