百度站內搜尋https不可用切換api搜尋,加上谷歌api站內搜尋
google推https幾年了,百度開始宣傳全面https,但是,百度站內搜尋 自己的服務卻不走https,介面報錯。百度分享也是。
然後採用http://search.zhoulujun.cn/cse/search ,用了7-8個月的樣子,還是繼續,不聲不響地 改變了配置了,突然就不通了——而且什麼時候不通的都不知道
無賴,無奈,只有用google 自定義搜尋引擎,用api 介面弄好
用google search API配置google站內搜尋
谷歌搜尋引擎定製化頁面地址
https://cse.google.com/cse/setup/basic?cx=009558619093950188775:b3wc7giu_hw
複製 搜尋引擎 ID ,儲存
拖到最下面,找到
自定義搜尋 JSON API
每天的查詢數上限為 10000 次。
直接開啟連線,可以閱讀下內容,瞭解下
在此https://developers.google.com/custom-search/v1/overview
頁面找到 API key,點選 GET A KEY 按鈕,
複製key,儲存
然後拼湊如下地址:
就是你的谷歌自定義站內搜尋引擎
谷歌的就完成了,再來看下百度:
用百度站內搜尋api配置百度站內搜尋
登入百度站內頁面,點選 進入API管理後臺
新建搜尋引擎,點選 程式碼示例
在程式碼裡面獲取如下程式碼地址:http://zhannei.baidu.com/api/customsearch/apiaccept?sid=6351075239166713563&v=2.0&callback=init
直接下載,上傳自己服務,引用。
然後配置如下程式碼
var cse ; //引數為您的API引擎ID,已自動填寫,必需。 var form=document.querySelector('searchBaidu-bd');//關鍵詞輸入框 var textInput=document.getElementById('bdcsMain');//關鍵詞輸入框 var btnInput=document.getElementById("search");//搜尋按鈕 var listBox=document.getElementById("list");//搜尋結果列表框 var exchange=document.getElementById("exchange");//搜尋結果列表框 var exchangeEngine=document.getElementById("exchangeEngine");//搜尋結果列表框 var searchEngine=document.getElementById("searchEngine");//搜尋結果列表框 let params=getUrlParams(window.location.search); let initKeyword=params['q']; if(initKeyword){ initKeyword=decodeURIComponent(initKeyword); textInput.value=initKeyword; } var googleEnable=false; function getUrlParams(str){ let obj={}; str.replace(/([^&=?]+)=([^&=?]*)/g,function (str,$1,$2) { obj[$1]=$2; return str; }); return obj; } function searchBaidu (text) { cse.getResult(text, function (data) { console.info('百度搜索結果'); console.log(data); createList(data,listBox) }); } function init () { cse= new BCse.Search("6351075239166713563"); initKeyword&&searchBaidu(initKeyword); } function createList(arr,select){ var str=''; if(arr&&arr.length){ let tempArr = arr.map(function (data) { return ' <li class="article-li ">' + ' <a class="" href="'+data.linkUrl+'" target="_blank">'+data.title+'</a>' + ' <time>'+data.dispTime+'</time>' + ' </li>'; }); str=tempArr.join(''); }else { str='<li> 沒有找到相關內容——the suitable context had not been found all the time. </li>'; } select.innerHTML=str; searchEngine.innerHTML='百度'; exchangeEngine.innerHTML='切換為谷歌搜尋'; } btnInput.addEventListener('click',function (e) { e.preventDefault(); var text=textInput.value; if(googleEnable){ text&&searchByGoogle(text); }else { text&&searchBaidu(text); } }); exchange.addEventListener('click',function (e) { e.preventDefault(); window.location='?m=search&c=index&a=init&siteid=1&typeid=1&q='+textInput.value; }); exchangeEngine.addEventListener('click',function (e) { e.preventDefault(); var text=textInput.value; console.info('exchangeEngine.innerText'); console.log('__________'); if(exchangeEngine.innerText==='切換為百度搜索'){ text&&searchBaidu(text); googleEnable=true; return false; }else { text&&searchByGoogle(text); googleEnable=false; return false; } }); function hndlr(response) { // console.log(JSON.stringify(response)); console.log(response); var str=''; if(response&&response.items&&response.items.length){ let tempArr = response.items.map(function (data) { return ' <li class="article-li ">' + ' <a class="" href="'+data.link+'" target="_blank">'+data.htmlTitle+'</a>' + ' </li>'; }); str=tempArr.join(''); }else { str='<li>沒有找到相關內容</li>'; } listBox.innerHTML=str; searchEngine.innerHTML='谷歌'; exchangeEngine.innerHTML='切換為百度搜索'; } function searchByGoogle(keyword){ $.ajax({ type: 'GET', url: 'https://www.googleapis.com/customsearch/v1', data: { q: keyword, key:'AIzaSyC_pehzzjm8_6lbsegGNgct1-LaACSpvkM', cx:'009558619093950188775:b3wc7giu_hw', siteSearch: 'zhoulujun.cn' }, dataType: 'json', success: function (data) { console.info('google搜尋結果'); console.log(data); googleEnable=true; hndlr(data) }, error:function (data) { hndlr(); // let timer=setTimeout(function () { // searchBaidu(textInput.value); // clearTimeout(timer); // },800) } }); } searchByGoogle(initKeyword); /*function setBaidu () { var scriptEle=document.createElement('script'); scriptEle.src="{JS_PATH_CDN}andy/baidu.zn.js"; document.body.appendChild(scriptEle); }*/
具體程式碼和效果可以參看:
https://www.zhoulujun.cn/index.php?m=content&c=index&a=lists&catid=204&q=%E6%93%8D
沒有做程式碼優化,只是抽點空把自己網站功能修復而已
按上面的操作的和應該可以配置