各大搜索引擎智慧提示API(jsonp實現跨域自動補全建議)
阿新 • • 發佈:2019-01-11
---------------------------------------搜尋引擎JSONP介面---------------------------------------------
提示:URL中的 #content# 為搜尋的 關鍵字
谷歌(Google)
callback:window.google.ac.h
window.google.ac.h(["關鍵字",[["關鍵字",0],["關鍵字 歌詞",0],["關鍵字引數",0],["關鍵字 lyrics",0],["關鍵字過濾",0],["關鍵字排名",0],["關鍵字查詢",0],["關鍵字提取演算法",0],["關鍵字規劃師可通過以下哪種方式幫助您製作新的搜尋網路廣告系列",0],["關鍵字優化",0]],{"k":1,"q":"uhaB8ZMjzJay-BACee_C0eVdUCA"}])
必應(Bing)
callback:window.bing.sug
if(typeof window.bing.sug == 'function') window.bing.sug({"AS":{"Query":"關鍵字","FullResults":0}} /* pageview_candidate */);
百度(Baidu)
callback:window.baidu.sug
window.baidu.sug({q:"關鍵字",p:false,s:["關鍵字搜尋排名","關鍵字怎麼優化","關鍵字查詢工具","關鍵字推廣","關鍵詞優化","關鍵詞排名","關鍵字 英文","關鍵詞挖掘","關鍵詞查詢","關鍵詞搜尋"]});
好搜(So)
callback:window.so.sug
window.so.sug({"query":"關鍵字","result":[{"word":"關鍵字查詢"},{"word":"關鍵字工具"},{"word":"關鍵字查詢工具"},{"word":"關鍵字挖掘"},{"word":"關鍵字搜尋"},{"word":"關鍵字英文"},{"word":"關鍵字是什麼"},{"word":"關鍵字廣告"},{"word":"關鍵字分析"},{"word":"關鍵字規劃師"}],"version":"b","rec":""});
搜狗(Sogou)
callback:window.sogou.sug
window.sogou.sug(["關鍵字",["關鍵字查詢","關鍵字搜尋","關鍵字優化","關鍵字規劃師","關鍵字查詢lol","關鍵字是什麼意思","關鍵字搜尋工具","關鍵字廣告圖片","關鍵字排名查詢","關鍵字生成器"],["0;0;0;0","1;0;0;0","2;0;0;0","3;0;0;0","4;0;0;0","5;0;0;0","6;0;0;0","7;0;0;0","8;0;0;0","9;0;0;0"],["","","","","","","","","",""],["0"],"","suglabId_1"],-1);
淘寶(Taobao)
callback:window.taobao.sug
window.taobao.sug({"result":[["關鍵字推廣","204"],["關鍵字seo","198"],["關鍵字 網站","182"],["關鍵字搜尋","119"],["關鍵字軟體","44"],["關鍵字首頁","50"],["關鍵字收錄","35"],["關鍵字採集","16"],["關鍵字採集器","10"],["網站關鍵字","180"]]})
---------------------------------------搜尋建議使用方式---------------------------------------------
以百度為例,API返回的是JSONP資料,JSONP是跨域訪問的一種方式。由於伺服器返回的JavaScript程式碼可以直接引用,通過回撥函式的方式就可以間接的獲取伺服器的資料。
下面是一個回撥搜尋建議的例子,window.baidu.sug 返回的是一個json物件
<script type="text/javascript"> window.onload = function() { //組裝查詢地址 var sugurl = "http://suggestion.baidu.com/su?wd=#content#&cb=window.baidu.sug"; var content = "關鍵字"; sugurl = sugurl.replace("#content#", content); //定義回撥函式 window.baidu = { sug: function(json) { console.log(json) } } //動態新增JS指令碼 var script = document.createElement("script"); script.src = sugurl; document.getElementsByTagName("head")[0].appendChild(script); } </script>
控制檯列印的結果:如果要將結果儲存在一個字串陣列中,只需要 var arr = json.s 即可。