コード例 #1
0
        public async Task <List <int> > GetSiteRankings(string keywords, string url)
        {
            try
            {
                List <string> urlList = await GetUrlList(keywords);

                List <int> siteRanking = new List <int>();

                //separate index is needed to keep track of ranks
                int index = 1;

                foreach (var urlItem in urlList)
                {
                    if (urlItem.ToLower().Trim().Contains(SEOHelpers.FormatUserURL(url.ToLower().Trim())))
                    {
                        siteRanking.Add(index);
                    }

                    index++;
                }

                return(siteRanking);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());
                return(null);
            }
        }
コード例 #2
0
        private async Task <string> GetSearchResultBody(string keywords)
        {
            try
            {
                HttpResponseMessage response = await client.GetAsync(SeacrchURL + SEOHelpers.FormatKeywordsString(keywords));

                response.EnsureSuccessStatusCode();

                return(await response.Content.ReadAsStringAsync());
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());
                return(null);
            }
        }
コード例 #3
0
        private async Task <List <string> > GetUrlList(string keywords)
        {
            try
            {
                List <string> urlList = new List <string>();

                var searchResultBody = await GetSearchResultBody(keywords);

                foreach (var match in URLRegex.Matches(searchResultBody))
                {
                    urlList.Add(SEOHelpers.ExtractUrlFromString(match.ToString()));
                }

                return(urlList);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());
                return(null);
            }
        }