首先您可能找不到有效的获取百度搜索词的方法,其他搜索引擎是有的,百度以前也是有的,但是后面由于有人利用识别“百度的关键词”显示对应的内容。百度所以现在是跳转了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;
varself={};
//获取来源链接
var str = window.parent.document.referrer;
if(str){
//有参数
if(str.indexOf(?)!==-1){
//获取参数
self.data = getParms(str);
//百度
if(str.search(.baidu.com/)!==-1){
self.kw =self.data[word];
self.fm =bd;
//搜狗
}elseif(str.search(.sogou.com/)!==-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;
//好搜
}elseif(str.search(.so.com/)!==-1){
self.kw =self.data[q];
self.fm =360;
//神马
}elseif(str.search(.sm.cn/)!==-1){
self.kw =self.data[q];
self.fm =sm;
}else{
//其他
self.fm =ot;
//关键词
console.log(关键词:,self.kw);
console.log(搜索引擎:,self.fm);
但是,上面的百度获取关键词,只能获取推广的。
什么意思呢?也就是付费推广的,上面百度标记为[广告]的可以采用这种方式获取关键词,其他的搜索引擎没问题,这代码是线上跑的代码。
百度用户搜索词获取
通过技术攻克我们解决了此问题,并且已经应用到了生产项目中。主要做内容适配,也就是用户搜索什么词,那就显示对应的内容给用户看。
关键词接口描述:
publicstaticvoid main(String[] args){
//来源链接
Stringref="https://www.baidu.com/link★r5U8lYnXoflF48T_81nAjCR_zSMMc8Ysn4aWdjyEYwAF02lD7G_4CPvpOVUqhnlBy5_z0Ynwe5HmcmCsVuDsSseTGmTJG4jO8fJ7XoVP2S&wd=&eqid=c76c5b510029e5ba000000045e822c32";
//转码urlencode编码
String url =StringUtils.strToUrlcode(ref);
//开始请求
String res =Http.create("http://baidu.sojson.com/load/kws★ url)
.baseHead()//基础头信息
.head("skey","授权的key")//授权信息
.timeout(3)//3秒超时
.get()//get请求
.send()//发送
.getResponse()//获取返回对象
.getResult();//获取返回值
//urldecode 编码
res =StringUtils.urlcodeToStr(res);
System.out.println("关键词:" res);
结果输出:
本文由官网soso原创撰写,转载请注明出处。