百度站内搜索https不可用切换api搜索,加上谷歌api站内搜索
Author:[email protected] Date:
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
没有做代码优化,只是抽点空把自己网站功能修复而已
按上面的操作的和应该可以配置
转载本站文章《百度站内搜索https不可用切换api搜索,加上谷歌api站内搜索》,
请注明出处:https://www.zhoulujun.cn/html/Operation/seo/2016_0217_6546.html