• home > OMD > SEO >

    百度站内搜索https不可用切换api搜索,加上谷歌api站内搜索

    Author:[email protected] Date:

    用google search API配置google站内搜索和用百度站内搜索api配置百度站内搜索 操作案列示范。根据网络情况自动选择百度还是google,优选选择google。实现非常糙。代码烂…同样遭遇的,可以借鉴配置下

    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,保存

    然后拼凑如下地址:

    https://www.googleapis.com/customsearch/v1?q=css&siteSearch=zhoulujun.cn&key=AIzaSyC_pehzzjm8_6lbsegGNgct1-LaACSpvkM&cx=009558619093950188775:b3wc7giu_hw

    就是你的谷歌自定义站内搜索引擎

    谷歌的就完成了,再来看下百度:

    用百度站内搜索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