我的网站访问者来自搜索引擎吗?他们的搜索条件是什么?

时间:2009-08-14 22:59:47

标签: java tomcat search-engine referrals

我想根据访问者是否来自搜索引擎,以不同方式显示我的网页。我想我正在检测搜索引擎推荐?我也想知道用于到达我网站的搜索字词。

到目前为止,我的解决方案是:

1)过滤包含常见搜索引擎网址的HTTP请求引荐对象,即http://www.google.com/searchhttp://www.bing.com/searchhttp://search.yahoo.com/search

2)为搜索项解析引用者的查询字符串参数,例如“Q =搜索+条款+为我的网站+ + +去这里”

我觉得这不是最强大的解决方案,因为它错过了鲜为人知的搜索引擎,而且每个搜索引擎都可能拥有搜索词的自己的查询字符串参数。例如,Google和Bing的搜索字词参数都是“q”,但据我所知,雅虎的“p”是“p”。那些像+, - 等特殊运算符呢?

有更通用的方法吗?或者是否有一个可以帮助我处理更多搜索引擎的库?我正在使用在Tomcat上运行的Java,但欢迎来自任何语言和服务器设置的想法。

3 个答案:

答案 0 :(得分:2)

看看这里: http://www.gdargaud.net/Hack/Searches.html

在这里: http://search.cpan.org/perldoc?URI::ParseSearchString

2种略有不同的方法,但它们涵盖了更广泛的搜索引擎及其引用字符串。

答案 1 :(得分:1)

您的方法是您可以做的最好的方法。我在Drupal上运行了一个类似的模块,

http://drupal.org/project/search_engine_referers

如果您查看代码,它就完全按照您的说法执行。我认为他们还没有支持Bing.com的版本。

考虑到搜索市场份额的来源,如果你可以处理谷歌(AOL使用谷歌),必应和雅虎,你可以获得超过90%的搜索。你真的需要担心其他搜索网站吗?如果你像我一样在中国,请将baidu.com添加到列表中。

有些奇怪的小型搜索网站是您无法处理的。他们一次改变他们的参数。有些甚至使用POST来发送查询,因此它在引用者中不可用。

答案 2 :(得分:1)

对于PHP,您请求$ _REQUEST [“HTTP_REFERRER”]并使用一些pregs或eregs解析搜索字符串。