百度站内搜索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
没有做代码优化,只是抽点空把自己网站功能修复而已
按上面的操作的和应该可以配置
百度站内搜索https不可用切换api搜索,加上谷歌api站内搜索的更多相关文章
- PHPCMS站内搜索功能实现方法汇总,一文解决PHPCMS站内搜索问题
1,https://blog.csdn.net/hzw19920329/article/details/80110673 点评:phpcms搜索功能实现方法,作者基于PHPCMS做个门户网站实现站内搜 ...
- 我的B站主页:https://space.bilibili.com/611212 内有视频题解
我的B站主页:https://space.bilibili.com/611212 内有视频题解
- WordPress整站轻松开启HTTPS
近两年来HTTPS取代HTTP已经成为大势所趋.早在2014年google Chromium安全团队提议将所有的HTTP协议网站标注为不安全.现在,Chrome浏览器已经开始执行这一标准了.从 Chr ...
- 【百度地图API】如何区分地址解析和智能搜索?
原文:[百度地图API]如何区分地址解析和智能搜索? 摘要: 很多用户一直无法区分地址解析geocoder和智能搜索localsearch的使用场景.该文章用一个详尽的示例,充分展示了这两个类,共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 ...
- 百度分享不支持https的解决方案
站点自从开启 https 之后 ,百度分享就不能用了!但是又寻找不到类似百度分享的替代品.. 怎么办呢?要如何解决 百度分享不支持https的问题呢, 跟着博主动动手,让你百度分享仍然能在https下 ...
- 搭建实时同步data guard的最高可用-切换主备
搭建实时同步data guard的最高可用-切换主备 首先保证主库在归档模式下:错过N次了 准备二台机器(hostname gw hosts ech0)host-only [root@node1 ~] ...
- 【百度地图API】如何制作公交线路的搜索?如331路
原文:[百度地图API]如何制作公交线路的搜索?如331路 摘要: 从A点到B点的公交导航大家都知道怎么做了,那么单独查询331路公交车的公交路线,如何制作呢?我们一起来学习一下~ --------- ...
- 百度分享不支持Https的解决方案--本地化
站点自从开启 https 之后 ,百度分享就不能用了!但是又寻找不到类似百度分享的替代品.. 怎么办呢?要如何解决 百度分享不支持https的问题呢, 跟着博主动动手,让你百度分享仍然能在https下 ...
随机推荐
- datatables隐藏列与createdRow渲染bootstrapSwitch形成的BUG
背景: 昨天写了一个页面用于规则库的增删改查. 数据使用datatables渲染,后端返回数据由前端进行一次性渲染和分页. 隐藏列: 排序的ID不展示,但是排序又想按照ID来排,所以把ID单独作为一列 ...
- Anaconda3 tensorflow安装 及ModuleNotFoundError: No module named 'tensorflow' 解答
Anaconda3 的安装,参考:手把手教你如何安装Tensorflow(Windows和Linux两种版本) tensorflow的安装,参考:深度学习(TensorFlow)环境搭建:(三)Ubu ...
- 2019-2-21.NET中异常类(Exception)
.NET中异常类(Exception) 异常:程序在运行期间发生的错误.异常对象就是封装这些错误的对象. try{}catch{}是非常重要的,捕获try程序块中所有发生的异常,如果没有捕获异常的话, ...
- css 定位布局
文档流: 文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列.块元素占一行,行内元素在一行之内从左到在排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置. 关于定位: 可以 ...
- jQuery 心跳请求
原文链接:http://caibaojian.com/setinterval.html 前言:1.使用setInterval()的定时器会把事件运行的时间也包含在内,如果要精确算定时两个任务之间的时间 ...
- 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 ...
- mysql having和where的区别
having子句与where子句一样,都是用于条件判断的. 区别1 where是判断数据从磁盘读入内存的时候 having是判断分组统计之前的所有条件 区别原理 区别2 having子句中可以使用字段 ...
- ubuntu16.04 anaconda的安装和卸载
第一次安装: 1.直接从官网下载了anaconda安装包,然后bash ...sh安装. 2.过程中主要需要选择安装路径,为了把安装的软件都放在一起,我新建了一个install_software在系统 ...
- IPV6配置
云友“学渣王 ”在帖子里提到需要为阿里云ECS配置IP6地址,根据网上的一些信息,写此例. 如果要求是FQDN地址,请登录到您的域名控制面板,设置一条AAAA记录到新设置的IPv6隧道地址. 在阿 ...
- Python基础之数据基本运算
一.核心数据类型(五种): 在Python中变量没有数据类型,但关联的对象有数据类型,可通过type函数查看数据类型 1.整型(Int): 包含正整数,负整数和零 二进制:逢二进一,书写格式为 a = ...