SEO更深层次的方面主要在于一些原理性的东西,中国SEO特此整理了关于搜索引擎蜘蛛的一些原理,希望对SEO爱好者在学习SEO的过程中能有一些指导意义:
搜索引擎服务器会一刻不停的从互联网上抓取网页,存放到本地的机器上,然后建立索引,并且对外检索服务。典型的工作流程是
1。搜集
在这个流程中,用网络爬虫 或者叫spider的程序模块,不断地从web上寻找网页并且下载下来。最长用的方法是,把整个web网络看作是一个有向图,从种子URL集合开始,开始抓取并且存到本地,并且解析出网页内容中包含的url链接,然后把这些新的url加到url集合中。一般按照宽度优先的方式来查找。 这个过程不断重复直到URL集合中所有链接都已经采集过,或者是采集时间限制到了,或者是所有的不超过某一深度的连接都已经采集过了。这些下载下来的网页的标准html文本,以及采集url,采集时间等要素都要记录下来。
采集器还要注意对被采集网站的影响,避免采集造成攻击式的后果。
2。预处理
这个过程比较复杂
2.1 对html网页进行解析并且建立索引
html网页需要去掉html标签和一些垃圾连接,比如广告等。 对于网页的正文内容要建立索引。 索引是检索最重要的数据对于检索速度和效果影响是根本性的。在索引中词和网页都用数字来标记。 常用的是倒排索引,格式如下 termid : docid1 docid2 ...docid3 . 其中termid也就是我们常说的词,,在索引中一般用词的编号来代替。docidx是所有包含该term的网页的编号。
2.2 计算每篇网页的重要程度。 一般各个网站的首页都比较重要,需要赋予较高的权重。常用的方法是利用网页之间的链接关系,类似学术研究上的相互引用关系,来计算每个网页的重要性,这就是page rank . google就是靠它起家的.
2.3 重复网页的消除. 网络上的网页多是好几份的,大家你抄我的我抄你的,连个错别字都不会改的情况都存在. 这些重复网页浪费了搜索引擎的代价,更重要的是影响检索的效果.
3. 检索服务
我们在检索端输入查询串之后,要经过分词处理.然后利用的到词,得到termid,到前面2.1 生成的索引查找, 得到符合检索条件的网页的id. 然后用网页的内容计算的权重和2.2 计算的page rank数值,以及其他的权重 一起对每个网页给出一个最终权重. 这些网页按照权重从大到小的排序之后输出. 就是我们看到的检索结果了.
当然这里谈到的只是一些最基本的实现方法. 其实每个步骤都是非常复杂的一项工作,很多的技巧在里面,比如存储结构,比如一些自然语言处理技术,比如分类.聚类等.
上面的方法只能做一个demo系统,要真正的高性能的好的系统,还要其他更深的技术.搜索引擎是个高门槛的东西.