检测Google即搜搜索并从网址中提取搜索关键字

时间:2012-01-27 20:03:53

标签: javascript url google-chrome

检测Google搜索网址是否来自Google即时搜索网页而不是来自典型搜索网址并从该网址中提取关键字的可靠方法是什么?

如何区分这两个网址?是否有用于即时搜索的标准URL /查询字符串格式?

典型搜索示例:https://www.google.com/search?q=hello+world

典型搜索只是在查询字符串的q参数中传递关键字。

即时搜索示例:https://www.google.com/#sclient=psy-ab&hl=en&site=&source=hp&q=hello+world+again&pbx=1&oq=hello+world+again&aq=f&aqi=g-v1&aql=&gs_sm=e&gs_upl=1355l3667l0l3832l17l15l0l2l2l1l255l3081l2-14l16l0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=682774cd339f5d00&biw=1316&bih=682

在即时搜索期间,在哈希(#)之后附加参数。在这种情况下,检测URL是否包含散列并在散列位置后检测q参数是否可靠?

我正在尝试从搜索网址中检索当前的关键字。

1 个答案:

答案 0 :(得分:1)

我写了一个小函数,从查询字符串中提取q参数。

经过测试并与上面提供的网址完美配合...我还在测试各种其他网址,如果我发现一些错误,我会修复该功能并在此处更新...

享受:

var parse_google_url = function (url)
{
    var hash_position = url.indexOf('#'),
    query_string = url.substr(hash_position === -1 ? url.indexOf('?') : hash_position);
    return decodeURI((RegExp('q=(.+?)(&|$)').exec(query_string) || [,null])[1]);
}