如何确定搜索查询转发用户到我的网站?

Ste*_*eve 13 javascript php ruby search-engine

问候,

我正在尝试找出用于将人们转发到我的网站的查询.如果有人能告诉我我应该调查什么api,我会很感激.我确信这可以使用javascript以及ruby和php,所以任何技术都可以.

只是为了学习,我不介意知道我应该使用的三个:)

Sim*_*tti 26

使用搜索引擎超过5年,我可以告诉你,没有标准的方法来检索查询值.

正如其他答案已经告诉你的那样,第一步是检查HTTP_REFERER标题.假设您正在使用Rails,您可以从请求中获取它

request.referrer
Run Code Online (Sandbox Code Playgroud)

否则,您需要以其他方式从请求标头中提取它.

一旦你有推荐人,那么你就有3个主要可能性:

  1. 变量是空的.对不起,你什么也做不了
  2. 变量不是空的,它是一个搜索引擎
  3. 变量不是空的,它不是搜索引擎

第一个选择很简单.您想知道的是推荐人是否是搜索引擎.如果是这样,那么您需要提取查询.

最常见的方法是使用清单.核对表通常是键/值的列表,其中键是搜索引擎域,值是包含查询值的查询字符串参数的名称.

google.com,q
yahoo.com,p
...
Run Code Online (Sandbox Code Playgroud)

这与Google Analytics使用的方法相同.来自ga.js文件

g.T=l("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)

第一个主机匹配键和值,第一个胜利.


Pis*_*3.0 6

检查Referer访问者的HTTP请求标头($_SERVER['HTTP_REFERER']在PHP中).在所有情况下,这将为您提供访问者来自的页面.如果它是搜索引擎页面,则需要解析引用查询字符串并从中解析数据(请注意,查询字符串格式可能会更改).

这比谷歌分析工作更多,我给出的简单例子并没有给你带来那么多数据; 但是如果你不熟悉谷歌为你做数据收集可以做到.