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

直接下载,上传自己服务,引用。

然后配置如下代码

  1.     var cse ;    //参数为您的API引擎ID,已自动填写,必需。
  2.     var form=document.querySelector('searchBaidu-bd');//关键词输入框
  3.     var textInput=document.getElementById('bdcsMain');//关键词输入框
  4.     var btnInput=document.getElementById("search");//搜索按钮
  5.     var listBox=document.getElementById("list");//搜索结果列表框
  6.     var exchange=document.getElementById("exchange");//搜索结果列表框
  7.     var exchangeEngine=document.getElementById("exchangeEngine");//搜索结果列表框
  8.     var searchEngine=document.getElementById("searchEngine");//搜索结果列表框
  9.     let params=getUrlParams(window.location.search);
  10.     let initKeyword=params['q'];
  11.     if(initKeyword){
  12.         initKeyword=decodeURIComponent(initKeyword);
  13.         textInput.value=initKeyword;
  14.     }
  15.     var googleEnable=false;
  16.     function getUrlParams(str){
  17.         let obj={};
  18.         str.replace(/([^&=?]+)=([^&=?]*)/g,function (str,$1,$2) {
  19.             obj[$1]=$2;
  20.             return str;
  21.         });
  22.  
  23.         return obj;
  24.     }
  25.  
  26.     function searchBaidu (text) {
  27.         cse.getResult(text, function (data) {
  28.             console.info('百度搜索结果');
  29.             console.log(data);
  30.             createList(data,listBox)
  31.         });
  32.     }
  33.  
  34.     function init () {
  35.         cse= new BCse.Search("6351075239166713563");
  36.         initKeyword&&searchBaidu(initKeyword);
  37.     }
  38.  
  39.     function createList(arr,select){
  40.         var str='';
  41.         if(arr&&arr.length){
  42.             let tempArr = arr.map(function (data) {
  43.                 return ' <li class="article-li  ">' +
  44.                     '                <a class="" href="'+data.linkUrl+'" target="_blank">'+data.title+'</a>' +
  45.                     '                <time>'+data.dispTime+'</time>' +
  46.                     '            </li>';
  47.             });
  48.             str=tempArr.join('');
  49.         }else {
  50.             str='<li> 没有找到相关内容——the suitable context had not been found all the time. </li>';
  51.     }
  52.  
  53.         select.innerHTML=str;
  54.         searchEngine.innerHTML='百度';
  55.         exchangeEngine.innerHTML='切换为谷歌搜索';
  56.     }
  57.     btnInput.addEventListener('click',function (e) {
  58.         e.preventDefault();
  59.         var text=textInput.value;
  60.         if(googleEnable){
  61.             text&&searchByGoogle(text);
  62.         }else {
  63.             text&&searchBaidu(text);
  64.         }
  65.     });
  66.  
  67.     exchange.addEventListener('click',function (e) {
  68.         e.preventDefault();
  69.         window.location='?m=search&c=index&a=init&siteid=1&typeid=1&q='+textInput.value;
  70.     });
  71.     exchangeEngine.addEventListener('click',function (e) {
  72.         e.preventDefault();
  73.         var text=textInput.value;
  74.         console.info('exchangeEngine.innerText');
  75.         console.log('__________');
  76.         if(exchangeEngine.innerText==='切换为百度搜索'){
  77.             text&&searchBaidu(text);
  78.             googleEnable=true;
  79.             return false;
  80.         }else {
  81.             text&&searchByGoogle(text);
  82.             googleEnable=false;
  83.             return false;
  84.         }
  85.  
  86.     });
  87.  
  88.     function hndlr(response) {
  89.         // console.log(JSON.stringify(response));
  90.         console.log(response);
  91.         var str='';
  92.         if(response&&response.items&&response.items.length){
  93.  
  94.             let tempArr = response.items.map(function (data) {
  95.                 return ' <li class="article-li  ">' +
  96.                     '                <a class="" href="'+data.link+'" target="_blank">'+data.htmlTitle+'</a>' +
  97.                     '            </li>';
  98.             });
  99.             str=tempArr.join('');
  100.  
  101.         }else {
  102.             str='<li>没有找到相关内容</li>';
  103.         }
  104.         listBox.innerHTML=str;
  105.         searchEngine.innerHTML='谷歌';
  106.         exchangeEngine.innerHTML='切换为百度搜索';
  107.     }
  108.  
  109.     function searchByGoogle(keyword){
  110.         $.ajax({
  111.             type: 'GET',
  112.             url: 'https://www.googleapis.com/customsearch/v1',
  113.             data: {
  114.                 q: keyword,
  115.                 key:'AIzaSyC_pehzzjm8_6lbsegGNgct1-LaACSpvkM',
  116.                 cx:'009558619093950188775:b3wc7giu_hw',
  117.                 siteSearch: 'zhoulujun.cn'
  118.  
  119.             },
  120.             dataType: 'json',
  121.             success: function (data) {
  122.                 console.info('google搜索结果');
  123.                 console.log(data);
  124.                 googleEnable=true;
  125.                 hndlr(data)
  126.             },
  127.             error:function (data) {
  128.                 hndlr();
  129.                 // let timer=setTimeout(function () {
  130.                 //     searchBaidu(textInput.value);
  131.                 //     clearTimeout(timer);
  132.                 // },800)
  133.             }
  134.  
  135.         });
  136.     }
  137.  
  138.     searchByGoogle(initKeyword);
  139.     /*function setBaidu () {
  140.         var  scriptEle=document.createElement('script');
  141.         scriptEle.src="{JS_PATH_CDN}andy/baidu.zn.js";
  142.         document.body.appendChild(scriptEle);
  143.     }*/

具体代码和效果可以参看:

https://www.zhoulujun.cn/index.php?m=content&c=index&a=lists&catid=204&q=%E6%93%8D

没有做代码优化,只是抽点空把自己网站功能修复而已

按上面的操作的和应该可以配置

百度站内搜索https不可用切换api搜索,加上谷歌api站内搜索的更多相关文章

  1. PHPCMS站内搜索功能实现方法汇总,一文解决PHPCMS站内搜索问题

    1,https://blog.csdn.net/hzw19920329/article/details/80110673 点评:phpcms搜索功能实现方法,作者基于PHPCMS做个门户网站实现站内搜 ...

  2. 我的B站主页:https://space.bilibili.com/611212 内有视频题解

    我的B站主页:https://space.bilibili.com/611212 内有视频题解

  3. WordPress整站轻松开启HTTPS

    近两年来HTTPS取代HTTP已经成为大势所趋.早在2014年google Chromium安全团队提议将所有的HTTP协议网站标注为不安全.现在,Chrome浏览器已经开始执行这一标准了.从 Chr ...

  4. 【百度地图API】如何区分地址解析和智能搜索?

    原文:[百度地图API]如何区分地址解析和智能搜索? 摘要: 很多用户一直无法区分地址解析geocoder和智能搜索localsearch的使用场景.该文章用一个详尽的示例,充分展示了这两个类,共5种 ...

  5. centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln 内部命令和外部命令 第五节课

    centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln   ...

  6. 百度分享不支持https的解决方案

    站点自从开启 https 之后 ,百度分享就不能用了!但是又寻找不到类似百度分享的替代品.. 怎么办呢?要如何解决 百度分享不支持https的问题呢, 跟着博主动动手,让你百度分享仍然能在https下 ...

  7. 搭建实时同步data guard的最高可用-切换主备

    搭建实时同步data guard的最高可用-切换主备 首先保证主库在归档模式下:错过N次了 准备二台机器(hostname gw hosts ech0)host-only [root@node1 ~] ...

  8. 【百度地图API】如何制作公交线路的搜索?如331路

    原文:[百度地图API]如何制作公交线路的搜索?如331路 摘要: 从A点到B点的公交导航大家都知道怎么做了,那么单独查询331路公交车的公交路线,如何制作呢?我们一起来学习一下~ --------- ...

  9. 百度分享不支持Https的解决方案--本地化

    站点自从开启 https 之后 ,百度分享就不能用了!但是又寻找不到类似百度分享的替代品.. 怎么办呢?要如何解决 百度分享不支持https的问题呢, 跟着博主动动手,让你百度分享仍然能在https下 ...

随机推荐

  1. datatables隐藏列与createdRow渲染bootstrapSwitch形成的BUG

    背景: 昨天写了一个页面用于规则库的增删改查. 数据使用datatables渲染,后端返回数据由前端进行一次性渲染和分页. 隐藏列: 排序的ID不展示,但是排序又想按照ID来排,所以把ID单独作为一列 ...

  2. Anaconda3 tensorflow安装 及ModuleNotFoundError: No module named 'tensorflow' 解答

    Anaconda3 的安装,参考:手把手教你如何安装Tensorflow(Windows和Linux两种版本) tensorflow的安装,参考:深度学习(TensorFlow)环境搭建:(三)Ubu ...

  3. 2019-2-21.NET中异常类(Exception)

    .NET中异常类(Exception) 异常:程序在运行期间发生的错误.异常对象就是封装这些错误的对象. try{}catch{}是非常重要的,捕获try程序块中所有发生的异常,如果没有捕获异常的话, ...

  4. css 定位布局

    文档流: 文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列.块元素占一行,行内元素在一行之内从左到在排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置. 关于定位: 可以 ...

  5. jQuery 心跳请求

    原文链接:http://caibaojian.com/setinterval.html 前言:1.使用setInterval()的定时器会把事件运行的时间也包含在内,如果要精确算定时两个任务之间的时间 ...

  6. vue-cli 脚手架 Command Line Interface

    mac sudo npm install -g nrm sudo npm config -g set unsafe-perm sudo npm install webpack@3.0.0 -g sud ...

  7. mysql having和where的区别

    having子句与where子句一样,都是用于条件判断的. 区别1 where是判断数据从磁盘读入内存的时候 having是判断分组统计之前的所有条件 区别原理 区别2 having子句中可以使用字段 ...

  8. ubuntu16.04 anaconda的安装和卸载

    第一次安装: 1.直接从官网下载了anaconda安装包,然后bash ...sh安装. 2.过程中主要需要选择安装路径,为了把安装的软件都放在一起,我新建了一个install_software在系统 ...

  9. IPV6配置

    云友“学渣王 ”在帖子里提到需要为阿里云ECS配置IP6地址,根据网上的一些信息,写此例.  如果要求是FQDN地址,请登录到您的域名控制面板,设置一条AAAA记录到新设置的IPv6隧道地址.  在阿 ...

  10. Python基础之数据基本运算

    一.核心数据类型(五种): 在Python中变量没有数据类型,但关联的对象有数据类型,可通过type函数查看数据类型 1.整型(Int): 包含正整数,负整数和零 二进制:逢二进一,书写格式为 a = ...