索引页链接如何补全机制

  一、背景

  Spider位于搜索引擎数据流的最上游,负责将互联网上的资源采集到本地,提供给后续检索使用,是搜索引擎的最主要数据来源之一。spider系统的目标就是发现并抓取互联网中一切有价值的网页,为达到这个目标,首先就是发现有价值网页的链接,当前spider有多种链接发现机制来尽量快而全的发现资源链接,本文主要描述其中一种针对特定索引页的链接补全机制,并给出对这种特定类型的索引页面的建议处理规范用于优化收录效果。

  当前大多数互联网网站以索引页和翻页的形式来组织网站资源,当有新资源增加时,老资源往后推移到翻页系列中。

  如下图所示:

  图表1 http://roll.news.sina.com.cn/news/gnxw/gdxw1/index.shtml

  图2为18小时后该网页翻页系列的第四页的内容,在这段时间内新增了三页多的资源,图1中红色矩阵圈到的资源在18个小时后已经往后有序推移到第4页的红色方块处。

  图表2 18小时后第四页

  http://roll.news.sina.com.cn/news/gnxw/gdxw1/index.shtml

  对spider来说,这种特定类型的索引页是资源链接发现的一种有效渠道,但是由于spider是定期检查这些网页来获得新增的资源链接,检查的周期同资源链接发布的周期不可避免会有不同(spider会尽量探测网页的发布周期,以合理的频率来检查网页),周期不同的时候,资源链接很有可能就被推到翻页序列中,所以spider需要对这种特殊类型的翻页系列作翻页补全,从而保证收录资源的完全。

  二、主要思路

  本文主要讨论这种资源按发布时间有序排布的网页,即新发布的资源排布在翻页第1页(或翻页最后一页),老的资源往后(或者往前)有序推移的索引页的补全机制。主要思路是将整个翻页系列的网页看成一个整体,综合判定它们的抓取状态,通过记录每次抓取网页发现的资源链接,然后将此次发现的资源链接与历史上发现的资源链接作比较,如果有交集,说明该次抓取发现了所有的新增资源;否则,说明该次抓取并未发现所有的新增资源,需要继续抓取下一页甚至下几页来发现所有的新增资源。

  2.1 资源链接是否按照时间排序

  判断资源是否按发布时间排布是这类页面的一个必要条件,那么如何判断资源是否按发布时间排布呢?如上面图1所示,有些页面中每个资源链接后面跟随着对应的发布时间,通过资源链接对应的时间集合,判断时间集合是否按大到小或小到大排序,如果是的话,则说明网页中的资源是按发布时间有序排布,反之亦然。图1中资源从上到下对应的时间是越来越小的,即是资源按发布时间有序的。

  还有一类网页,如下面图3所示,网页内容中有多种排序方式,如按销量排序,按价格排序,如评论数排序,按上架时间排序。通过识别和提取当前的排序方式,然后判断当前的排序方式是否为按时间排序,如果是,则说明网页中的资源是按发布时间有序排布,反之亦然。图3中的排序方式是按上架时间排序,属于时间排序方式,所以该网页发布的资源是按发布时间有序的。

  另外也会根据资源链接抓回后提取的发布时间综合判断。

  图表3 多种排序方式的索引页

  2.2 补全机制

  对于按发布时间有序排布在索引页系列的资源链接,如何保证新发布的资源都被收录呢?如上述所说,在18个小时后,图1中的资源链接已经往后有序推移到翻页第4页了,如此看,这段时间内新增了翻页第2,3,4页索引的资源链接,那么,spider就需要完全的收录这些新增的资源;

  首先,当spider抓取18小时后的第1页时,将新发现的资源链接集合,与上一次18小时前第1页索引页调度记录的资源链接集合作比较,会发现两次调度发现的资源链接没有交集,所以就可能存在漏链。进而需要继续发起第2页的调度,第2页发现的资源链接集合与之仍然没有交集,所以还可能存在漏链,继续发起第3页,第4页的调度,最终如图2所示,红框中的链接与上一次索引页调度记录的资源链接有交集,因此可以断定已经补全了这段时间内新增的资源,从而结束翻页系列的调度,并保证了该翻页系列的所有链接的补全,从而提升搜索产品的收录效果。

  2.3 翻页条的识别和翻页条对应的链接序列区块的识别

  为了达到上面的效果,除了需要识别翻页系列的排序方式是不是按照时间排序,还需要识别索引页中的翻页条和其对应的链接区块。

  因为没有翻页条的识别,spider系统就不可能把这个翻页序列的所有链接绑定起来,整体考虑它们的状态,那么调度抓取的结果就是随机的,从而不能保证补全效果,当前通过网页中的翻页的一系列特征,通过机器学习的方法来识别网页中的翻页区块和翻页深度,以及上一页,下一页的链接,从而为上述补全机制提供基本数据。

  另外一方面,即使有了翻页条的识别,没有对应链接区块的识别,上述补全机制还是不能工作,因为上述机制需要对比发现的链接的集合来判定终止条件,所以,也需要识别翻页条对应的链接区块,从而提供翻页终止条件。

  特殊情况下,一个网页可能包含多个翻页条,这种情况更需要进行翻页条和链接区块的对应。

  三、建议的方法和标准

  当前百度spider系统对网页的类型,网页中翻页条的位置,翻页条对应的索引列表,以及列表是否按照时间排序都会做相应的判断,并根据实际的情况进行处理,但是机器自动的判断方法毕竟不能做到100%的识别准确率,所以如果站长能够通过在页面中添加一些百度推荐的标签来标志相应的功能区域,就可以极大地提高我们识别的准确率,从而提高spider系统对网站资源发现的即时性,从而提高网站的收录效果。

  Spider链接补全当前最关心的是网页的翻页条和翻页条对应的索引链接列表的区块,所以可以通过区块的元素(譬如div,ul)的class属性来标志相应的特征,供百度spider识别使用,建议使用下面的属性来标志:

  表1 支持的CLASS扩展属性

  譬如百度新闻的页面可以这样设置:

  对翻页条对应的区块元素p可以设置class属性Baidu_paging_indicator,对该翻页条对应的主体链接的区块元素div,设置 Baidu_paging_content_indicator Orderby_posttime,这样翻页条和对应的链接区块就对应起来,并且告知了百度是按照发布时间排序的,从而可以优化spider系统的抓取行 为,改善站点的收录效果。

  四、总结

  除了上面说明的链接发现方法,Baidu的抓取系统还有非常多的其他手段来保证对 有价值网站的收录覆盖率,上述方法只是针对特定索引页类型而采取的一种特定的手段,互联网站长可以参考使用。站长也可以通过spider的站长平台来了解 如何获得更快更好的网站收录效果,譬如直接通过sitemap协议推送链接。站长平台地址:http://zhanzhang.baidu.com/,刚刚改版,全新功能呈现。

时间: 2024-09-01 15:35:26

索引页链接如何补全机制的相关文章

百度搜索研发部:索引页链接补全机制的一种方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 索引页链接补全机制的一种方法 一.背景 Spider位于搜索引擎数据流的最上游,负责将互联网上的资源采集到本地,提供给后续检索使用,是搜索引擎的最主要数据来源之一.spider系统的目标就是发现并抓取互联网中一切有价值的网页,为达到这个目标,首先就是发现有价值网页的链接,当前spider有多种链接发现机制来尽量快而全的发现资源链接,本文主要描

c语言-关于下面链接的专家系统的缺失代码不明白。希望大神帮忙补全。如果写注释就太感谢了

问题描述 关于下面链接的专家系统的缺失代码不明白.希望大神帮忙补全.如果写注释就太感谢了 https://www.dropbox.com/sh/1r8i36ozggxrje9/AABOHtr-N52QFPXfX0jhQacAa?dl=0

Bash 补全编程

对于 Linuxer 来说,自动补全是再熟悉不过的一个功能了.当你在命令行敲下部分的命令时,肯定会本能地按下Tab键补全完整的命令,当然除了命令补全之外,还有文件名补全. Bash-completion 自动补全这个功能是Bash自带的,但一般我们会安装bash-completion包来得到更好的补全效果,这个包提供了一些现成的命令补全脚本,一些基础的函数方便编写补全脚本,还有一个基本的配置脚本.但也正如之前说的,这个包不是必须的,只不过可以省些力气. bash-completion这个包的安装

nginx rewrite 实现伪静态及伪静态自动补全

nginx里使用伪静态是直接在nginx.conf 中写规则的,并不需要像apache要开启写模块(mod_rewrite)才能进行伪静态. nginx只需要打开nginx.conf配置文件,在server里面写需要的规则即可. Nginx常用Rewrite伪静态规则: 伪静态规则是我们做伪静态的一个非常重的参数了,如果我们能理解得越多就可以快速的写出最优的伪静态代码了,下面给大家整理了一些例子,希望能给你有帮助. 本日志内容来自互联网和平日使用经验,整理一下方便日后参考. 正则表达式匹配,其中

SEO怎样修复索引页更容易让搜索引擎抓取

我看到几个常见的错误弹出.一个错误的想法,索引页,你应该阻止抓取路径.有意义的,对不对?如果你不想要的页面索引,为什么你会希望它爬?不幸的是,虽然这听起来合乎逻辑的,也是完全错误的.让我们来看看一个例子... 例如:产品评论 假设我们有一个体面的大型电子商务网站,与独特的产品1000页.这些网页看起来像这样:   每个产品都有自己的URL页面,当然,这些网址如下结构: http://www.***.com/product/1 http://www.***.com/product/2 http:/

转:VIM python 自动补全插件:pydiction

1.这是一个相当不错的 Python 代码自动完成的脚本. 2. 3.可以实现下面python代码的自动补全: 4. 5.简单python关键词补全 6.python 函数补全带括号 7.python 模块补全 8.python 模块内函数,变量补全 9.from module import sub-module 补全 10.pydiction 插件安装 11. 12.pydiction 1.0 之后版本安装配置 13. 14.适用VIM7之后的版本. 15. 16.1.python_pydic

《中国人工智能学会通讯》——12.33 众包知识库补全方法概览

12.33 众包知识库补全方法概览 本章介绍众包知识库补全的方法概览,如图 1所示.其基本思想包含两个部分,其一,利用多种数据源,如现有的多个知识库.Web 结构化数据等,提取知识数据,并将不同数据源的知识数据融合起来,以此补全知识库:其二,在融合的过程中有效地利用众包,通过众包模型细化出具体可供众包完成的任务,利用众包优化算法进行质量和成本的控制,以选择出最优的任务发布到众包平台,如美国亚马逊公司的 Mechanical Turk ( 简称 MTurk) 1 . 知识抽取:提出利用多类数据源进

PHP文章采集URL补全函数(FormatUrl)_php实例

写采集必用的函数,URL补全函数,也可叫做FormatUrl. 写此函数作用就是为了开发采集程序,采集文章的时候会经常遇到页面里的路径是 "相对路径" 或者 "绝对根路径" 不是"绝对全路径"就无法收集URL. 所以,就需要本功能函数进行对代码进行格式化,把所有的超链接都格式化一遍,这样就可以直接收集到正确的URL了. 路径知识普及 相对路径:"../" "./" 或者前面什么都不加 绝对根路径:/path

PHP+jQuery实现自动补全功能源码_php技巧

前面手工写了一个下拉自动补全功能,写的简单,只实现了鼠标选择的功能,不支持键盘选择.由于项目很多地方要用到这个功能,所以需要用心做一下.发现select2这个插件的功能可以满足当前需求. 在使用jquery插件select2的过程中遇到了一些疑惑,无论是穿json数据还是通过jsonp方式取数据,都能够正确返回.可是下拉列表中的条目却不能被选中,对鼠标和键盘选择都无效. 后来发现,select2插件在实现选中时是以数据中的id字段为准的.所以不管是json还是jsonp,ajax返回的数据都必须