har*_*a11 2 asp.net httprequest
我正在尝试找到最有效的方法来解析我的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
Run Code Online (Sandbox Code Playgroud)
因此,虽然我可以通过每个人说出类似的话
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"]);
Run Code Online (Sandbox Code Playgroud)
我认为必须有一个更好的方法,因为我有这个很好的名称/值对,以及ParseQueryString方法的力量,但我画了一个空白.
嗯,我对它不满意,我认为我没有达到效率,但这就是我最终做的事情.我仍然希望通过更好的方法听取你们的意见.
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1547 次 |
| 最近记录: |