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

google推https幾年了,百度開始宣傳全面https,可是,百度站內搜索 本身的服務卻不走https,接口報錯。百度分享也是。php

而後採用http://search.zhoulujun.cn/cse/search ,用了7-8個月的樣子,仍是繼續,不聲不響地 改變了配置了,忽然就不通了——並且何時不通的都不知道css

無賴,無奈,只有用google 自定義搜索引擎,用api 接口弄好html

用google search API配置google站內搜索
谷歌搜索引擎定製化頁面地址ajax

https://cse.google.com/cse/setup/basic?cx=009558619093950188775:b3wc7giu_hwjson

複製 搜索引擎 ID ,保存api

拖到最下面,找到 app

自定義搜索 JSON APIide

天天的查詢數上限爲 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

沒有作代碼優化,只是抽點空把本身網站功能修復而已

按上面的操做的和應該能夠配置

相關文章
相關標籤/搜索