为了抓取网上尽量多的页面,搜索引擎蜘蛛会跟踪页面上的链接,从一个页面爬到下一个页面,就好像蜘蛛在蜘蛛网上爬行那样,这也就是搜索引擎蜘蛛这个名称的由来.整个互联网是由相互链接的网站及页面组成的.从理论上说,蜘蛛从任何一个页面出发,顺着链接都可以爬行到网上的所有页面.当然,由于网站及页面链接结构异常杂,蜘蛛需要采取一定的爬行策略才能遍历网上所有页面.
, R( _, o" K; r$ }8 C% }7 A- I1 {/ i! H4 `8 v+ c z, d2 e! ]( _
最简单的爬行遍历策略分为两种,一种是深度优先,另一种是广度优先.4 M" x* n$ X. ~1 L8 d# H
" h* N) Z3 f9 I# ]5 k6 y. I( p7 A
所谓深度优先,指的是蜘蛛沿着发现的链接一直向前爬行,直到前面再也没有其它链接,然后返回到第一个页面,沿着另一个链接再一直往前爬行.. `% k9 Q* _) U- A! A: I% V, ], @$ C
0 |" v! U' y, F- y 广度优先是指蜘蛛在一个页面上发现多个链接时,不是顺着一个链接一直向前,而是把页面上所有第一层链接都爬一遍,然后再沿着第二层页面上发现的链接爬向第三层页面.
6 W% A5 v" g+ c* d7 X, Z! ~6 B# u. @" N8 A8 S0 A+ m: d
从理论上说,无论足深度优先还是广度优先,只要给蜘蛛足够的时间,都能爬完整个互联网.在实际工作中同,蜘蛛的带宽资源、时间都不是无限的,也不可能爬完所有页面.实际上最大的搜索引擎也只是爬行和收录了互联网的一小部分.5 n) T7 c; J1 G) U2 @, `
% }' w/ ~% m) ?, `9 D 深度优先和广度优先通常是混合使用的,这样既可以照顾到尽量多的网站(广度优先),也能照顾到一部分网站的内页(深度优先). E: u9 n& b' o$ M+ e" x
8 b ?7 G' n! y+ w& o
转载请注明本文源于www.eudoraxx.com
+ s% S+ y1 y9 t1 f1 o/ I# } |