【问题标题】:parsing search engine keywords解析搜索引擎关键字
【发布时间】:2010-10-21 03:21:47
【问题描述】:

我试图找到最有效的方法来解析我的 System.Web.HTTPRequest.UrlReferrer 以查找用于将访问者带到我的网站的搜索词,假设他们是通过搜索引擎结果页面到达我的网站的。

我在想(希望)我会使用 HttpUtility.ParseQueryString 方法,但我的问题在于试图找出要解析的变量。我需要检查以下列表。该列表显示了搜索引擎和每个使用的参数。

daum:q,
eniro:search_word,
naver:query,
images.google:q,
google:q,
yahoo:p,
msn:q,
bing:q,
aol:query,
aol:encquery,
lycos:query,
ask:q,
altavista:q,
netscape:query,
cnn:query,
about:terms,
mamma:query,
alltheweb:q,
voila:rdata,
virgilio:qs,
live:q,
baidu:wd,
alice:qs,
yandex:text,
najdi:q,
aol:q,
mama:query,
seznam:q,
search:q,
wp:szukaj,
onet:qt,
szukacz:q,
yam:k,
pchome:q,
kvasir:q,
sesam:q,
ozu:q,
terra:query,
mynet:q,
ekolay:q,
rambler:words

所以虽然我可以遍历每个并说类似

NameValueCollection query = HttpUtility.ParseQueryString(UrlReferrer);
var referrer = Request.UrlReferrer.ToString();

if(referrer.Contains("google.com")
     return (query["q"]);
else if(referrer.Contains("yahoo.com")
     return (query["p"]);

我认为必须有更好的方法,因为我有这个不错的名称/值对可以使用,并且 ParseQueryString 方法的强大功能,但我正在画一个空白。

【问题讨论】:

    标签: asp.net httprequest


    【解决方案1】:

    好吧,我对此并不满意,而且我认为我没有达到效率,但这就是我最终做的事情。我仍然很想听听你们提供更好的方法。

    private string GetKeywords(string urlReferrer)
        {
            var searchQuery = string.Empty;
            var url = new Uri(urlReferrer);
            var query = HttpUtility.ParseQueryString(urlReferrer);
            switch (url.Host)
            {
                case "google":
                case "daum":
                case "msn":
                case "bing":
                case "ask":
                case "altavista":
                case "alltheweb":
                case "live":
                case "najdi":
                case "aol":
                case "seznam":
                case "search":
                case "szukacz":
                case "pchome":
                case "kvasir":
                case "sesam":
                case "ozu":
                case "mynet":
                case "ekolay":
                    searchQuery = query["q"];
                    break;
                case "naver":
                case "netscape":
                case "mama":
                case "mamma":
                case "terra":
                case "cnn":
                    searchQuery = query["query"];
                    break;
                case "virgilio":
                case "alice":
                    searchQuery = query["qs"];
                    break;
                case "yahoo":
                    searchQuery = query["p"];
                    break;
                case "onet":
                    searchQuery = query["qt"];
                    break;
                case "eniro":
                    searchQuery = query["search_word"];
                    break;
                case "about":
                    searchQuery = query["terms"];
                    break;
                case "voila":
                    searchQuery = query["rdata"];
                    break;
                case "baidu":
                    searchQuery = query["wd"];
                    break;
                case "yandex":
                    searchQuery = query["text"];
                    break;
                case "szukaj":
                    searchQuery = query["wp"];
                    break;
                case "yam":
                    searchQuery = query["k"];
                    break;
                case "rambler":
                    searchQuery = query["words"];
                    break;
                default:
                    searchQuery = query["q"];
                    break;
            }
            return searchQuery;
        }
    

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 1970-01-01
      • 2011-09-21
      • 2011-07-24
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      相关资源
      最近更新 更多