首先您可能找不到有效的获取百度搜索词的方法,其他搜索引擎是有的,百度以前也是有的,但是后面由于有人利用识别“百度的关键词”显示对应的内容。百度所以现在是跳转了2次,也就是301了2次,您是找不到上上个的地址的。
但是是不是就没办法获取了呢?那肯定不是,没有任何问题是技术解决不了的。
搜索引擎关键词通用获取代码
我先上这个代码,能解决,百度推广关键词、搜狗、神马、好搜关键词获取。我们要获取这个
直接上JavaScript代码://把参数转换为JSON格式
var getParms = function (url) {
url = url.split('?')[1]+'';
var data = {};
if(url.indexOf('=')!==-1){
var kv = url.split('&');
if(kv.length){
kv.forEach(function(e){
if(e.indexOf('=')!==-1){
var em = e.split('=');
data[em[0]] = em[1];
}
});
}
}
return data;
};
var self = {};
//获取来源链接
var str = window.parent.document.referrer;
if(str){
//有参数
if(str.indexOf('?')!==-1){
//获取参数
self.data = getParms(str);
}
//百度
if(str.search('./') !==-1){
self.kw = self.data['word'];
self.fm = 'bd';
//搜狗
}else if(str.search('./') !==-1){
//搜狗有几种方式
if(self.data['query']){
self.kw = self.data['query'];
}
if(self.data['keyword']){
self.kw =self.data['keyword'];
}
if(str.search('.jsp?') !==-1){
self.kw = 'wap' ;
}
self.fm = 'sg';
//好搜
}else if(str.search('./') !==-1){
self.kw = self.data['q'];
self.fm = '360';
//神马
}else if(str.search('./') !==-1){
self.kw = self.data['q'];
self.fm = 'sm';
}else{
//其他
self.fm = 'ot';
}
}
//关键词
console.log('关键词:',self.kw);
console.log('搜索引擎:',self.fm);
但是,上面的百度获取关键词,只能获取推广的。
什么意思呢?也就是付费推广的,上面百度标记为[广告]的可以采用这种方式获取关键词,其他的搜索引擎没问题,这代码是线上跑的代码。
百度用户搜索词获取
通过技术攻克我们解决了此问题,并且已经应用到了生产项目中。主要做内容适配,也就是用户搜索什么词,那就显示对应的内容给用户看。public static void main(String[] args) {
//来源链接
String ref = "/link?url=ir5U8lYnXoflF48T_81nAjCR_zSMMc8Ysn4aWdjyEYwAF02lD7G_4CPvpOVUqhnlBy5_z0Ynwe5HmcmCsVuDsSseTGmTJG4jO8fJ7XoVP2S&wd=&eqid=c76c5b510029e5ba000000045e822c32";
//转码urlencode编码
String url = StringUtils.strToUrlcode(ref);
//开始请求
String res = Http.create("/load/kws?url="+url)
.baseHead()//基础头信息
.head("skey", "授权的key")//授权信息
.timeout(3)//3秒超时
.get()//get请求
.send()//发送
.getResponse()//获取返回对象
.getResult();//获取返回值
//urldecode 编码
res = StringUtils.urlcodeToStr(res);
System.out.println("关键词:"+res);
}
结果输出:
本文主题:
如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。
¥我需要走的更远,点击我 赞助。
如果还有疑问,点击我加群,为你提供最好的解答。