原文发表在 http://www.blogjava.net/emu/archive/2005/11/29/21786.html
google suggest比起gmail要好对付的多了,就一个页面一个脚本文件,代码都一目了然,可惜用了google域名,在调的时候经常连接被断掉,最后还是找了一个代理才调通了代码。可以在本地运行的google suggest请在这个连接下载:
http://www.blogjava.net/Files/emu/suggest.rar
其中的脚本文件ac.js已经做了一点整理,关键的qc函数crack了一下,使它可以找到服务器:
function
qc(ac){
if
(l
&&
l.readyState
!=
0
){
l.abort()
}
l
=
vb();
if
(l){
l.open(
"
GET
"
,
"
http://www.google.com
"
+
Aa
+
"
&js=true&qu=
"
+
ac,
true
);
l.onreadystatechange
=
function
(){
if
(l.readyState
==
4
&&
l.responseText){
if
(l.responseText.charAt(
0
)
==
"
<
"
){
V
--
}
else
{
eval(l.responseText)
}
}
};
l.send(
null
)
}
}
插个断点就可以看到,比如我们在输入框中输入了“AJAX”,google suggest就向服务器请求这样一个资源:
http://www.google.com/complete/search?hl=en&js=true&qu=AJAX
而服务器则返回:
sendRPCDone(frameElement,"ajax",newArray("ajax","ajaxamsterdam","ajaxfc","ajaxontario","ajaxgrips","ajaxfootballclub","ajaxpubliclibrary","ajaxfootball","ajaxsoccer","ajaxpickeringtransit"),newArray("3,840,000results","502,000results","710,000results","275,000results","8,860results","573,000results","40,500results","454,000results","437,000results","10,700results"),newArray(""));
剩下的大家都会做了,不多废话。