爬行和抓取
- R/ s3 U7 H7 b 蜘蛛
: V9 P6 J5 e$ t8 }+ v9 a Y7 @4 [ 搜索引擎用来爬行页面和访问页面的程序叫做“蜘蛛”,大家也成为机器人(robots)。搜索引擎蜘蛛访问网站页面时类似于普通用户使用的浏览器,蜘蛛程序发出页面访问请求后,服务器返回HTML代码,蜘蛛程序把收到的代码存入原始页面数据库中。搜索引擎为了提高爬行和抓取速度,都使用多个蜘蛛一起爬行页面,提高爬行速度。
2 ?; B( A8 {2 B 蜘蛛访问任何一个网站时,都会先访问网站根目录下的robotstxt文件。如果robotstxt文件禁止搜索引擎抓取某些文件或目录,搜索引擎就不会爬行抓取,直接过滤这些文件。3 x- P6 W* a" t. }& B7 ?
跟踪链接
, {: C8 k. O7 J3 T 为了抓取网上尽量多的页面,搜索引擎蜘蛛会跟踪页面的链接,从一个页面爬行到另外一个页面,一层层的爬行直至没有继续往下的链接为主。& M) y$ N7 P1 t, e E
搜索引擎爬行的原理有两种:一种是深度优化,另外一种就是广度优先。5 H% ~; t) ]1 ~: Y$ \# O- W. l2 l
所谓深度优先,指的就是蜘蛛沿着发现的链接一直向前爬行,直到前面再也没有其他链接指向,然后返回到第一个页面,继续爬行。8 Y* V# _% Z. F
广度优先是指蜘蛛在一个页面上发现多个链接地址,不是顺着一个链接一直往前,而是把页面上所有第一层的链接都爬行一遍后,在从第二层页面开始爬行直至最后。从理论上说,无论是深度优先还是广度优先,只要给蜘蛛足够长的时间,都能爬完整个互联网。在实际工作中,蜘蛛的带宽资源、时间都是有限的,也不可能爬行完所有的页面。所以深度优先和广度优先通常是混合使用的,这样既可以照顾到尽量多的页面,也能够照顾到一部分内页。) }6 p; [1 ?; w( {1 L2 f1 D( _
吸引蜘蛛
6 j' H! I/ c! v# ~ 那接下来我们就要思考,该如何吸引蜘蛛爬行,去抓取更多的页面,我认为应该从以下几个方面去考虑:7 K: R$ g* E) [* G& O
() 网站和页面的权重:
2 H% A0 S3 Z0 N+ j1 Y9 |, W8 V 质量高、资格老的网站被认为权重比较高,这种网站的页面被爬行的深度也会比较高,被收录的内页也会增加。
* ?! d( R1 ?) G- W) { () 页面更新度:% ?8 r7 k5 ]& t4 _# R
蜘蛛每次爬行都会把页面数据存储起来,如果第二次爬行发现页面与第一次收录完全一样,说明这个网站页面没有更新,蜘蛛下次过来继续爬行的概率也不会很高。
" `. t. f1 ]5 O2 n, u" L% p () 导入链接:# w) D% o5 ^, j0 s" f% d, v+ [
导入链接也就是咱们经常说的外链和内链,外链顾名思义是从外部网站导入过来的,比较多的就是友情链接。内链主要是针对网站内部来说,是指从网站的一个页面指向另外一个页面。高质量的外链可以增加网站的权重,也可以增加搜索引擎爬行网站的深度。$ f @0 k, d+ E9 z& W
()与首页的点击距离
) t4 u& w9 v5 P$ A& H 一般来说网站上权重最高的页面就是首页,大部分外部链接也都是指向首页,蜘蛛访问最频繁的也是首页。所以,离首页距离越近,页面的权重越高,被蜘蛛爬行的几率也会更大。
" I5 I9 a. v8 U/ m% e6 r/ ]) s 地址库3 x3 J0 _) w1 u7 c3 V) \, p
为了避免重复爬行和抓取网址,搜索引擎内部会建立一个地址库,记录已经被发现还没有抓取的页面,以及已经被抓取的页面。
! b7 v, _( `6 N3 O4 p& Z 地址库中的URL有几个:
+ _* ]4 V0 R- X3 U I- j d () 人工录入的种子网站; W/ h9 k/ Q7 g/ F' O
() 蜘蛛爬行抓取页面后,从HTML中解析出新的URL,与地址库中的数据库进行对比,如果是地址库中没有的网址,就会存入待访问的地址库。* ]( ~0 K' E9 t: v" X/ l
() 站长通过搜索引擎网站页面表格提交进来的网址。1 o) j0 ^; i- H; ?' s2 j, b
文件存储
( I7 \ c1 z, g3 L, @ 搜索引擎蜘蛛抓取的数据存入原始页面数据库,其中的页面数据与用户浏览器得到的HTML是完全一样,每一个URL都有相应的文件编号7 l/ i3 [" P5 k2 @. t
本文来自: 9710.cc|5319.cc|9831.cc|0723.cc|9693.cc |