百度相关提示与搜索结果标题

作者:吴星
时间:2014-04-15
浏览:14288

为了便于研究 F1 第 6 位,在网页工具上增加显示百度的相关搜索与下拉框提示词的代码,从而衍生出了一些新想法。因篇幅较长,所以从 F 1 第 6 位参数解释里单独拿出来作介绍。 相关搜索 相关搜索较易从百度搜索结果页得到 if (preg_match_all("/(?<=&rs_src\=)([01]{1}\">)([\x80-\xff\w\s\.#\:\/]{0,32})(?=<\/a><\/th><)/", $baiduserp, $matchrelated)) for ($i = 0; $i <= count($matchrelated[1]) - 1; $i++) {     echo $matchrelated[2][$i]; } [\x80-\xff\w\s.#\:\/]{0,32} 能匹配大部分百度相关搜索词 下拉框提示 下拉框提示词比较麻烦,不能直接从百度搜索结果页得到。 花了几个小时分析了百度搜索结果页的 JavaScript,看得眼花撩乱。 整理后找到了可以借用的一段代码。 "buildUrl": function(val, mode) {     var me = this, requestUrl = me.sugHost || "http://suggestion.baidu.com/su", sugMode = mode ? "&sugmode=" + mode : "";     return me.sugcookie > 0 && (me.sugcookie = 3), requestUrl + "?wd=" + encodeURIComponent(val) + sugMode + "&p=" + me.sugcookie + "&sid=" + me.sid; }, 下面这行 JS 说明了百度下拉框提示词是怎么建造的。 requestUrl + ?wd= + encodeURIComponent(val) + sugMode + "&p=" + me.sugcookie + "&sid=" + me.sid; 实际百度搜索结果页的下拉框提示 Request URL:http://suggestion.baidu.com/su?wd=seo&sugmode=2&zxmode=1&json=1&p=3&sid=5820_5229_1452_6053_5223_4759_6018_5856_5373_5919&cb=jQuery110209567506273742765_1397615281459&_=1397615281466 百度返回 200 状态码的页面 jQuery110209567506273742765_1397615281459({"q":"seo","p":false,"s":["seo是什么","seo优化","seo教程","seo查询","seo工具","seo是什么意思","seo公司","淘宝seo","seo博客","seo猪八戒网"],"zzx":["0","0","0","0","0","0","0","0","0","0"]}); 其中 sugmode, zxmode 具体是什么意思尚不清楚,不过有几个固定值。 sugmode 有 [123]{1} 3 个值 zxmode 发现 [12]{1} 2 个值 现在暂时去掉不需要或无法利用的参数 sid, p, sugcookie, json, zxmode, cb, _ 再加上输入编码 ie = UTF-8,百度搜索了下,又增加返回较为简洁的字符串参数 action = opensearch 。 修改后的请求 URL suggestion。baidu。com/su?sugmode=1&action=opensearch&ie=UTF-8&wd=seo suggestion。baidu。com/su?sugmode=2&action=opensearch&ie=UTF-8&wd=seo suggestion。baidu。com/su?sugmode=3&action=opensearch&ie=UTF-8&wd=seo 百度返回 3 种提示模式的 JSON 格式字符串 sugmode = 1 ["seo",["seo是什么","seo优化","seo教程","seo查询","seo工具","seo是什么意思","seo培训","seo论坛","seo技术","塞欧"]] sugmode = 2 ["seo",["seo是什么","seo优化","seo教程","seo查询","seo工具","seo是什么意思","seo公司","淘宝seo","seo博客","seo猪八戒网"]] sugmode = 3 ["seo",["seo是什么","seo优化","seo教程","seo查询","seo工具","seo是什么意思","seo培训","seo论坛","seo技术","塞欧"]] 3 种模式随着权重从上到下递减,提示词之间的差异也越来越大。 提示词数量上 sugmode = 1 < sugmode = 2 < sugmode = 3 $jsonsuggestion = json_decode($baidusuggestion); for ($i = 0; $i <= count($jsonsuggestion[1]) - 1; $i++) {     echo $jsonsuggestion[1][$i]; } 用 PHP 的 json_decode 转化成数组就得到关键词的即时下拉框提示词了。 使用亲自动手编的十几行百度相关提示代码过程中,发现相关搜索与下拉框提示 3 个有趣的现象。

  1. 下拉框提示更新较快,会出现24小时内的热门新闻词,相关搜索词比下拉框提示滞后。 原因之一可能是下拉框提示和输入法类似,会及时把百度搜索风云榜的实时热点更新到词库里,比如搜索扫黄打非,下拉框提示就 1 个扫黄打非净网2014。其他原因放到后面叙述。 相关搜索像最近用户搜索过 seo 之外,还搜索过藏獒的关系,需要至少 2 次以上的搜索,所以反馈速度比下拉框提示慢。
  2. 通常相关搜索词数比下拉框提示数量多,但是搜索日本女优的名字,下拉框提示数可能比相关搜索更多。
  3. 开启下拉框知心提示模式2(zxmode = 2),再加上参数 p = 1, 请求黄晓明 suggestion。baidu。com/su?zxmode=2&p=1&ie=UTF-8&wd=黄晓明 会返回如下内容 {{{ window.baidu.sug({q:"黄晓明",p:false,s:[],"tzx":"输入“黄晓明身高”或“黄晓明年龄”,你会直接得到结果,赶快来试试吧!"}); }}}
黄晓明身高 180cm, srcid = 6714,百度知心精准答案 黄晓明年龄 36岁, srcid = 6714,百度知心精准答案 请求改成 suggestion。baidu。com/su?zxmode=2&p=1&ie=UTF-8&wd=黄晓明身高 返回语句不通的内容 window.baidu.sug({q:"黄晓明",p:false,s:[],"tzx":"输入“黄晓明身高身高”或“黄晓明身高年龄”,你会直接得到结果,赶快来试试吧!"}); 搜索黄晓明身高年龄体重,结果如下图所示 黄晓明(中国一线男星) 身高 180cm 年龄 36岁 体重 65kg, srcid = 6714,百度知心精准答案 网上搜索了下,没有看到有关百度下拉框知心模式隐藏参数(zxmode)的介绍,算是原创研究发现了这个并未得到实际启用的百度下拉框提示功能。 准备把 zxmode =2 加入解释百度搜索结果 F 系参数工具里。 从实用角度看,藏獒显然对 seo 主旨没有多大帮助,而扫黄打非净网2014对主题是扫黄打非的页面较有用。 结合前面提到取得百度下拉框提示词的方法,理论上可以让百度自动优化网页标题。 继续叙下拉框即时提示。 下拉框提示词的排序参数和相关搜索,错别字/拼音提示正确搜索词都是 rsp(related search position)。 2013年01月08日在前任公司曾写过 rsp 这个参数最出名的地方在于许多人愿意花钱在主要关键词上刷出 rsp = [0-9] 的特定长尾关键词引导流量,消除负面内容,同时可以拉升自然排名。 数据统计结果表明相关提示位置的升降和短期点击量多寡颇为密切。 但是搜索引擎如同网游,百度针对影响他们利益的行为采取了一些措施。比如不同浏览器的相关搜索候选词不一致,一段时期甚至取消了下拉框提示,之后的搜索框提示词 rsp = 0, rsp = 1 会展现 2 条搜索历史记录,下拉框提示 JavaScript 中的 me.sugcookie 可能就是搜索历史记录的参数。 在黑帽 seo 与百度反垃圾作弊的纠缠下,如今 rsp = 0 的下拉框提示词还是比较可靠的,同时也为了避免堆砌关键词的嫌疑,用作标题时一般只放第 1 个提示词。对应 PHP 数组的 $jsonsuggestion[1][0]。 将 $jsonsuggestion[1][0] 保存进数据库,避免由于百度下拉框提示词经常更新引起的标题改变。 新标题的格式为 下拉框提示词+标题党+网站品牌,也可以把 $jsonsuggestion[1][0] 加入 Meta keywords。 有了优化过的标题之后,网站编辑就可以根据标题进行伪原创。 效果会比只有 1 个关键词要好,像做 seo 这个关键词,rsp = 0 的下拉框提示词为 seo是什么,新标题是 seo是什么_seo教程 - 搜外,比 seo_seo教程 - 搜外 的权重高一些。 实现代码如下所示 <?php $query = "seo"; $patterns = array(); $patterns[0] = '/(\s+)/'; $patterns[1] = '/(http:\/\/)/'; $replacements = array(); $replacements[0] = '%20'; $replacements[1] = ''; $queryfilter = preg_replace($patterns[1], $replacements[1], $query); $queryfilter1 = htmlspecialchars(preg_replace($patterns, $replacements, $query)); $suggestion1 = "http://suggestion.baidu.com/su?action=opensearch&ie=UTF-8&wd="; $baidusuggestion1 = file_get_contents($suggestion1.$queryfilter1); $jsonsuggestion1 = json_decode($baidusuggestion1); echo "<title>".$jsonsuggestion1[1][0]; if (!is_null($jsonsuggestion1[1][0])) { echo "_"; } echo htmlspecialchars($qfilter,ENT_QUOTES); if (!is_null($s)) { echo " - "; } echo "搜外</title> <meta content=\"".$jsonsuggestion1[1][0].",".htmlspecialchars($queryfilter,ENT_QUOTES)."\" name=\"keywords\" />" ;?> 请珍惜自己的品牌! 本文质量及原创性由搜外网审核,永久保存。【ID:109】点此查核→

本篇文章来源于 网络 版权均归站长本人所有,如有侵权,请联系seowhy2018删除。
    9 人参与评论
宇哥 · 擅长SEM、SEO,网络推广。

看的不是很懂,不过这个结论很有意思!我以后搜索的时候多留意一下这两中写法有什么不同

吴星 · 文艺极客QQ群 255363059

这篇短文是要发表的关于 F1 第 6 位的铺垫,结论是从 F1 参数来的。

李鑫 · SEO主管,一万年太久只争朝夕。

提示下拉框: 根据你输入的关键词进行完全匹配,拓展出更多你可能想要查询的长尾关键词。
相关搜索: 即百度强调的相关性,和你查询的关键词 相关的词语(百度通过自己的相关性词库,根据词语的相关性,搜索量)进而列出10个和你所查词语相关的词.
有的时候一些SEO会去用流量工具刷一些词让它出现在 搜索相关的那个位置.应该就是这个道理了.

张健 · 成都军区机关医院资深优化专家

我觉得百度任何的算法都是按照目前的人群的体验进行调整的,现在是这样可能果断时间就发生了变化。只有更好的跟进才是王道。

吴星 · 文艺极客QQ群 255363059

是自动请求百度下拉框提示,也就是标题可以自动更新,与时俱进。但无法解决的是内容无法同步更新。

赖财富 · 推拿养生

刚刚调试了下上面的PHP,感觉出来的效果不是最优!
缺少算法,比如:算下拉框,相关搜索,首页自然排名title,出现词次数 算分割词;百度右边最下面的推荐搜索!坐等师兄回复!

吴星 · 文艺极客QQ群 255363059

嗯,我 QQ 81952094,加个好友。

胡炎 · 兴趣站长

(!is_null($s))中的$s 指的是什么,网站名称?
另外同一个ip经常请求会不会被百度屏蔽掉

我以前做的一个获取sug做关键词的每天获取一两次就不能再获取了。

吴星 · 文艺极客QQ群 255363059

s是查询词,@夫唯老师的提点,sug有好几个ip,shuffle随机选一个,就好多了

提交评论禁止带推广链接、违法词及灌水,违规将封禁账号!!了解合理带链接的方法
本贴交流超时,评论已关闭