Google美国在前一段对网页搜索进行了一次调整(中国谷歌还未进行),就是搜索结果页面的每个条目链接不再是原始的URL地址了,而是一个通过Google.com转向的地址。比如我以前搜索Google,第一条结果的链接地址URL显然就应该是:
http://www.google.com/
而之前的改动让搜索结果的URL变成了这个样子:
http://www.google.com/url?sa=t&source=web&ct=res&cd=4&url=http%3A%2F%2Fwww.google.com
%2F&ei=OewWSsXFFKTgtAOJjdiSDw&usg=AFQjCNG5-9Jej-ukVeakTgwonqt2narbYg&sig2=4Lwo00y104At7P9SCT7uXA
等于说是所有搜索结果都要经过“http://www.google.com/url?sa=xxxxx”这样的地址跳转一下,而不是直接进入。Matt Cutts在5月初还做了一段视频特意解释了这个事情,他的意思是这样的跳转地址可以让Google知道用户点击的链接处于搜索结果页的第几位,搜索的关键词是什么。实际上除了网页搜索,包括图片搜索在内的多个搜索产品都做了这样的改变。
尽管这个改变对用户体验来说没变什么,无非也就是多等个半秒钟让Google解析一下地址再跳转到你要到的网站,还有就是在浏览器下方查看点击链接的地址时看起来乱七八糟。
今天人们在Google搜索的时候惊奇的发现搜索结果链接又回来了!浏览器不再显示跳转地址,而直接是搜索结果的原始URL地址了!Google自己把自己毙了吗?
经过研究发现,完全不是!Google耍了个小聪明,不信你在搜索结果上点右键看看,哎呀,这个乱七八糟的Google跳转地址又出现了!看看源代码,原来现在Google这么写搜索结果的链接了:
<a href="http://www.google.com/" class=l onmousedown="return rwt(this,'','','res','4',
'AFQjCNG5-9Jej-ukVeakTgwonqt2narbYg','&sig2=4Lwo00y104At7P9SCT7uXA')">
在HTML页面头部,有这么一段rewrite的JS代码:
window.rwt=function(a,d,e,g,h,f,i,j){
try {
if(a===window) {
a=window.event.srcElement;
while(a){
if(a.href)break;
a=a.parentNode
}
}
var b=encodeURIComponent¦¦escape,c=a.href.split("#"),k=["/url?sa=t\x26source\x3dweb",d?"&oi="+b
(d):"",e?"&cad="+b(e):"","&ct=",b(g¦¦"res"),"&cd=",b(h),"&url=",b(c[0]).replace(/\+/
g,"%2B"),"&ei=","3cgWSoiDAZmWswOEhvTZCA",f?"&usg="+f:"",i,c?"#"+c[1]:""].join("");a.href=k;
a.onmousedown=""
}
catch(l){}
return true
};
Google真邪恶呀,用这么个JS蒙骗了我们广大浏览器显示出来的链接地址,但其实你的所有点击依然需要通过Google重定向,重定向的链接跟以前一模一样。至于新的方式和以前的方式还有什么深层次上的不同,还需要进一步研究。或许Matt Cutts应该再拍一段新的视频给广大不明真相的群众解释一下?
转载请注明:文章转载自:谷奥——探寻谷歌的奥秘 [http://www.guao.hk]
本文标题:Google 英文搜索结果的链接不再做转向了?别被假象蒙蔽了眼睛
本文地址:http://www.guao.hk/posts/google-search-using-javascript-faking-click-tracking.html
本文短网址:http://guao.cc/2aV






是因为google要统计用户的点击情况,这个很重要!而google.com是直接在当前窗口打开,所以必须要这样才好统计。
@Betty:
果然Chorme就可以!IE和Firefox都不可以。。。
对
我用的chrome
@Betty:
你是在Google.com登陆状态搜索吗?那样都会有跳转的啊?你用的什么浏览器
我这里右键复制的是不包含跳转地址的呀
也沒什麽邪惡的,我希望Google記住我的搜索習慣
虽然链接是通过google跳转,但是网站说明文字下面都有一个绿色的网站的实际网址啊。
@Betty:
右键点击链接后,链接就还原为包含跳转地址的了,你是怎么复制原始地址的?
这是登陆状态下呀……没登陆的时候没跳转的
区别就是直接复制链接就能复制到正确的地址,而不用手动删除那些乱七八糟的东西了
我这里是这样的
google.y={};google.x=function(e,g){google.y[e.id]=[e,g];return false};window.clk=function(b,c,d,e,f,g,h){if(document.images){var a=encodeURIComponent||escape;(new Image).src=["/url?sa=T\x26source\x3dweb",c?"&oi="+a(c):"",d?"&cad="+a(d):"","&ct=",a(e||"res"),"&cd=",a(f),b?"&url="+a(b.replace(/#.*/,"")).replace(/\+/g,"%2B"):"","&ei=","2EobSqecBImCkQXa5Dg",g].join("")}return true};
window.gbar={qs:function(){},tg:function(e){var o={id:'gbar'};for(i in e)o[i]=e[i];google.x(o,function(){gbar.tg(o)})}};
为什么我这里是
window.clk = function
呢?万恶啊?
我的感觉是...google好像一直都是这样的哎, 不是刚开始用js的, 而是用了很久了