百度搜索引擎原理一,抓取建库,Spider抓取系统的基本框架( 二 )


4、抓取优先级调配
 
由于互联网资源规模的巨大以及迅速的变化,对于搜索引擎来说全部抓取到并合理的更新保持一致性几乎是不可能的事情,因此这就要求抓取系统设计一套合理的抓取优先级调配策略 。主要包括:深度优先遍历策略、宽度优先遍历策略、pr优先策略、反链策略、社会化分享指导策略等等 。每个策略各有优劣,在实际情况中往往是多种策略结合使用以达到最优的抓取效果 。
5、重复url的过滤
 
spider在抓取过程中需要判断一个页面是否已经抓取过了,如果还没有抓取再进行抓取网页的行为并放在已抓取网址集合中 。判断是否已经抓取其中涉及到最核心的是快速查找并对比,同时涉及到url归一化识别,例如一个url中包含大量无效参数而实际是同一个页面,这将视为同一个url来对待 。
6、暗网数据的获取
 
互联网中存在着大量的搜索引擎暂时无法抓取到的数据,被称为暗网数据 。一方面,很多网站的大量数据是存在于网络数据库中,spider难以采用抓取网页的方式获得完整内容;另一方面,由于网络环境、网站本身不符合规范、孤岛等等问题,也会造成搜索引擎无法抓取 。目前来说,对于暗网数据的获取主要思路仍然是通过开放平台采用数据提交的方式来解决,例如“百度站长平台”“百度开放平台”等等 。
7、抓取反作弊
 
spider在抓取过程中往往会遇到所谓抓取黑洞或者面临大量低质量页面的困扰,这就要求抓取系统中同样需要设计一套完善的抓取反作弊系统 。例如分析url特征、分析页面大小及内容、分析站点规模对应抓取规模等等 。
 
Baiduspider抓取过程中涉及的网络协议
 
刚才提到百度搜索引擎会设计复杂的抓取策略,其实搜索引擎与资源提供者之间存在相互依赖的关系,其中搜索引擎需要站长为其提供资源,否则搜索引擎就无法满足用户检索需求;而站长需要通过搜索引擎将自己的 内容推广出去获取更多的受众 。spider抓取系统直接涉及互联网资源提供者的利益,为了使搜素引擎与站长能够达到双赢,在抓取过程中双方必须遵守一定的 规范,以便于双方的数据处理及对接 。这种过程中遵守的规范也就是日常中我们所说的一些网络协议 。
以下简单列举:
 
http协议:超文本传输协议,是互联网上应用最为广泛的一种网络协议,客户端和服务器端请求和应答的标准 。客户端一般情况是指终端用户,服务器端即指网 站 。终端用户通过浏览器、蜘蛛等向服务器指定端口发送http请求 。发送http请求会返回对应的httpheader信息,可以看到包括是否成功、服务 器类型、网页最近更新时间等内容 。
https协议:实际是加密版http,一种更加安全的数据传输协议 。
UA属性:UA即user-agent,是http协议中的一个属性,代表了终端的身份,向服务器端表明我是谁来干嘛,进而服务器端可以根据不同的身份来做出不同的反馈结果 。
robots协议:robots.txt是搜索引擎访问一个网站时要访问的第一个文件,用以来确定哪些是被允许抓取的哪些是被禁止抓取的 。robots.txt必须放在网站根目录下,且文件名要小写 。详细的robots.txt写法可参考 http://www.robotstxt.org。百度严格按照robots协议执行,另外,同样支持网页内容中添加的名为robots的meta标 签,index、follow、nofollow等指令 。
Baiduspider抓取频次原则及调整方法
 
Baiduspider根据上述网站设置的协议对站点页面进行抓取,但是不可能做到对所有站点一视同仁,会综合考虑站点实际情况确定一个抓取配额,每天定量抓取站点内容,即我们常说的抓取频次 。那么百度搜索引擎是根据什么指标来确定对一个网站的抓取频次的呢,主要指标有四个:
 
1,网站更新频率:更新快多来,更新慢少来,直接影响Baiduspider的来访频率
 
2,网站更新质量:更新频率提高了,仅仅是吸引了Baiduspier的注意,Baiduspider对质量是有严格要求的,如果网站每天更新出的大量内容都被Baiduspider判定为低质页面,依然没有意义 。
 
3,连通度:网站应该安全稳定、对Baiduspider保持畅通,经常给Baiduspider吃闭门羹可不是好事情
 
4,站点评价:百度搜索引擎对每个站点都会有一个评价,且这个评价会根据站点情况不断变化,是百度搜索引擎对站点的一个基础打分(绝非外界所说的百度权重),是百度内部一个非常机密的数据 。站点评级从不独立使用,会配合其它因子和阈值一起共同影响对网站的抓取和排序 。


推荐阅读