最近群里讨论的比较火热的就是分面导航如何处理,在这里我说说我自己的一些想法吧。丑话说在前面,民工不常写文章,文笔是差点,大家能看懂多少就看多少吧。
首先,什么是分面导航相信各位都清楚吧,例如中关村的报价库索引页就是采用的分面导航。
像太平洋的报价库
http://product.pconline.com.cn/mobile/samsung/p3269/

说一下制作分面导航需要注意的地方。
一、分面导航因为可以通过不同条件的组合,从而产生非常多URL,如果不加以限制,一方面会大量的消耗蜘蛛的抓取,另一方面由于多条件的组合页面需要多条件组合查询数据库,随着组合的条件越来越多,对数据库服务器的消耗的就越厉害,在遇到像360或soso这种流氓爬虫的时候很容易把你服务器给爬死。
二、因为产品的数量其实是有限的,但是各种条件的组合方式却是非常多的,这就导致了大量的空白页面。大量空白页面会导致网站的评级降低,甚至K站也是经常见的。

假如我要做一个分面导航,我会怎么做?
我的思路是robots.txt + 组合条件控制
一,首先是robots.txt
因为各种不同的条件组合是可以在一定程度上命中关键词,但是随着条件的增多,命中关键词(命中用户搜索需求)的几率会大大降低,页面质量也会越来越难控制,所以控制只要蜘蛛抓取一定层级的页面能大大降低风险。那么既然要用到robots.txt,我们制定的URL就必须是有一定的规律的。
首先来看看下面2种URL,哪种会更好呢?
太平洋 : http://product.pconline.com.cn/mobile/samsung/p3269/c4927/
某基友网站的链接 : http://www.xxxxx.cn/cartype/28-6 ... order-ASC-grid.html
哪种更好呢?
此处省略一万个换行

答案是2种都不好,哈哈哈!
太平洋的URL方式少了分面导航URL的标示符,不方便写robots.txt,容易错封。
第二个链接有标示符,但是太长了,组合了多少个条件没有体现。
理想的方式:
www.xxxx.com/list_s423_s524_s842.html

robots.txt
添加4条记录
disallow: /list*.html
allow: /list_*.html
allow:/list_*_*.html
allow:/list_*_*_*.html

就可以达到只让蜘蛛爬3级组合的页面了。
这时候程序员可能会说,这样的URL没办法实现啊,参数不知道怎么传。
这里我也说说这种URL结构传参数的原理吧。
www.xxxx.com/list_s423_s524_s842.html
首先这个是个伪静态的URL,原始动态的URL可能是这样的。
www.xxxx.com/list.php?tag=s423_s524_s842
这样list其实拿到的是 tag参数对应的值是s423_s524_s842
这时候可以将tag参数的值按 "_"切分成数组,变成下面的数组
array("s423","s524","s842")
再对数组的每个元素进一步解析,每个元素取前2个字符作为参数,其余的作为值。
就变成
s3=23
s5=24
s8=42

s3,s4,s5分别对应着产品的不同属性,23,24,42分别对应着产品的不同属性值。
这样这个URL的解析就完成了。

二,组合条件控制
大家可以去看看太平洋报价库的分面导航,没有结果的条件是不可点的。中关村采用的是没有结果的URL采用nofollow标签nf掉。但是民工觉得NF还不够彻底,直接不要让搜索引擎知道有个链接是最好的。
那么怎么实现这一个效果呢,这里就要判断哪些条件组合是没有结果的。民工想了一个办法,在产品数不是很多的情况下可以实现,像淘宝那样级别的就另当别论了。
首先,当我们选择第一个条件的时候,我们需要把所有符合条件的商品全部查询出来,SQL语句想当简单,select * from XXX where XXX = XXX
假如,这个类产品有三个属性 aa bb cc ,那么就遍历结果集,把所有商品的aa bb cc属性都放到3个数组里
假如只有4个商品,数据可能是下面这样的
aa=[1,1,2,4]
bb=[2,2,4,2]
cc=[g,w,g,r]
对3个数组去重可以得到
aa=[1,2,4]
bb=[2,4]
cc=[g,w,r]
因为假如增加条件,等同于对现有的结果做进一步的筛选。所以,只有用户选择了上面的几个属性值之一才可能会有结果,这样我们就可以判断出哪些选项是可以继续筛选的,哪些选项是没有结果的。

但是有人会说,这样要遍历所有符合前面条件的商品啊。首先,这一个过程只做了一次的数据库查询,只是计算量会比较大,只要配合缓存我觉得问题不会很大。像代理缓存:如nginx,还有数据库缓存如mencached,一个能减轻web服务器压力,一个能减轻数据库查询压力,这样能保证页面访问速度。

好了,上面是我对分面导航怎么实现的一些想法,还没有真正上过,不知道效果会怎么样。
扯了一大堆,发现外链还没发完,赶紧先发外链去了……

注:本文章只供ITSEO内部交流,禁止转载!

分面导航的详细操作方案相关推荐

  1. 【安装篇】- 基于 VMWARE Oracle Linux7.9 安装 Oracle19c RAC 详细配置方案

    作者 | yanwei 来源 | 墨天轮 https://www.modb.pro/db/95684 大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 Linux7.9 安装 ...

  2. 虚拟机硬盘启动计算机后黑屏,高手亲自教告诉你win7虚拟机启动后黑屏的操作方案...

    windows系统非常经典,我们在办公和娱乐的时候都会用它.你在使用系统的时候有没有遇到win7虚拟机启动后黑屏问题呢?确实这个win7虚拟机启动后黑屏的问题对于很多用户来说比较少见,遇到了就不知道如 ...

  3. MTK Secure Boot 2.1详细配置方案-终极版

    1. 目的/背景 此文档使用了secure boot 2.1方案的配置,如有其他版本的secure方案,本文档仅作参考,secure boot方案可在security MTK文档中查到,也可以咨询MT ...

  4. 【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

    [CSDN云IDE]个人使用体验和建议 (含超详细操作教程)(python.webGL方向)  文章目录: 一.CSDN云IDE简介 二.新建工作空间 三.管理你的工作空间 (3.1).工作空间基本信 ...

  5. jbod ugood 磁盘驱动状态_AS SSD Benchmark查看硬盘状态的详细操作步骤

    最近很多朋友咨询关于AS SSD Benchmark怎么查看硬盘状态的问题,今天的这篇教程就来聊一聊这个话题,希望可以帮助到有需要的朋友. AS SSD Benchmark查看硬盘状态的详细操作步骤 ...

  6. 知乎引流回答问题需要注意什么?详细的方案一路指引

    知乎引流回答问题需要注意什么?详细的方案一路指引 我从3年前就开始在知乎上引流,一路见证了知乎的发展历程,也是被知乎虐的没脾气. 知乎平台最早是走高端精英路线,玩的也都是高学历人士,但是这样下去知乎一 ...

  7. 短视频运营:如何做自媒体?新手入门的详细操作分享

    经常听到这样一些言论,目前自媒体已经过时了,普通人根本挣不到钱,真相是否像别人说的一样呢? 其实,在我们身边经常会看到一些网红大V,一个月轻轻松松月入百万.月入千万的人已经大有人在,而这些网红往往都是 ...

  8. SPSS详细操作:样本均数间的多重比较

    SPSS详细操作:样本均数间的多重比较 下面我们用例子来探讨:方差分析得出各组总体均数间的差异有统计学意义之后,如何进行样本均数间的多重比较. 一.问题与数据 为调查A.B.C三种治疗措施对患者谷丙转 ...

  9. 百度收录批量查询_峰少课堂 手把手教你操作百度霸屏!(内附详细操作笔记!)...

    今天峰少课堂给大家讲解的是操作百度霸屏,一个月赚6000块!(内附详细操作笔记!) 看完可以直接拿去实操,没有效果你来找我啊哈哈哈哈哈!!之前我就是在公司摸索出了这套方法,然后专门找了一个文案做百度霸 ...

最新文章

  1. onKeyPress与。 onKeyUp和onKeyDown
  2. [转] 使用nginx sticky实现基于cookie的负载均衡
  3. SetConsoleCtrlHandler 处理控制台消息
  4. 03-SpringMVC-获得用户请求数据
  5. Java多线程:线程间通信之Lock
  6. Hadoop入门(七)Mapreduce高级Shuffle
  7. php课程设计实验心得,PHP程序设计教程实验及课程设计
  8. VMware:警惕 vSphere Web Client中的新漏洞
  9. 【转载】关于.NET下开源及商业图像处理(PSD)组件
  10. unity player 显示播放错误时的解决办法
  11. Codeforces Round #483 (Div. 1) A. Finite or not?
  12. ASP.NET 服务端GZIP压缩
  13. Web开发之Session
  14. linux服务器怎么连接
  15. java代码压缩文件
  16. 三重积分的轮换对称性及极坐标形式确定上下限
  17. uni-app 评论五星
  18. 基于pytorch的sque2suqe with attention实现与介绍
  19. 二叉树 | 二叉树的镜像(翻转)
  20. sunyueonline.com最新SEO成果显著,百度百科收录“孙越”

热门文章

  1. gn编译webrtc介绍
  2. c语言y为奇数的关系表达,设y是int型,请写出y为奇数的关系表达式
  3. Centos7 更换yum源
  4. 77% 的 Android 手机已换上 Eclair 或 Froyo 系统
  5. 从零开始的操作系统生活01-Hello World
  6. 大二学计算机专业职业规划,大学生计算机专业职业生涯规划2000字
  7. 数据分析报告流程展现
  8. CAB教程,国人写的
  9. 关于python的漫画_不能错过的Python漫画
  10. 互联网二手车的春天真的要来了吗?