Spider系统的目标就是发现并抓取互联网中一切有价值的网页,百度官方也明确表示蜘蛛只可以抓取到尽可能多的有价值资源并保持系统及实际环境中页面的一致性同时不给网站体验造成压力,也就是说蜘蛛不会抓取所有网站的所有页面,对此蜘蛛有很多的抓取策略来尽量快而全的发现资源链接,提高抓取效率。只有这样蜘蛛才能尽量满足绝大部分网站,这也是为什么我们要做好网站的链接结构,接下来笔者就只针对一种蜘蛛对翻页式网页的抓住机制来发表一点看法。
为什么需要这个抓取机制?
当前大多数网站都用翻页的形式来有序分布网站资源,当有新文章增加时,老资源往后推移到翻页系列中。对蜘蛛来说,这种特定类型的索引页是爬行的有效渠道,但是蜘蛛爬行频率和网站文章更新频率不尽相同,文章链接很有可能就被推到翻页条中,这样蜘蛛不可能每天从第1个翻页条爬到第80个,然后一个文章一个文章的抓取,到数据库对比,这样太浪费蜘蛛时间,也浪费你网站的收录时间,所以蜘蛛需要对这种特殊类型的翻页式网页来一个额外的抓取机制,从而保证收录资源的完全。
如何判断是否是有序翻页式页面?
判断文章是否按发布时间有序排布是这类页面的一个必要条件,下面会说到。那么如何判断资源是否按发布时间有序排布呢?有些页面中每个文章链接后面跟随着对应的发布时间,通过文章链接对应的时间集合,判断时间集合是否按大到小或小到大排序,如果是的话,则说明网页中的资源是按发布时间有序排布,反之亦然。就算没写发布时间,蜘蛛写可以根据文章本身的实际发布时间进行判断。
该抓取机制原理?
针对这种翻页式页面,蜘蛛主要是通过记录每次抓取网页发现的文章链接,然后将此次发现的文章链接与历史上发现的链接作比较,如果有交集,说明该次抓取发现了所有的新增文章,可以停止对后面翻页条的抓取了;否则,说明该次抓取并未发现所有的新增文章,需要继续抓取下一页甚至下几页来发现所有的新增文章。
当前百度蜘蛛对网页的类型,网页中翻页条的位置,翻页条对应的链接,以及列表是否按照时间排序都会做相应的判断,并根据实际的情况进行处理,但是蜘蛛毕竟不能做到100%的识别准确率,所以如果站长在做翻页条时不要用JS,更不要用FALSH,同时要有频率的进行文章更新,配合蜘蛛的抓取,这样就可以极大地提高蜘蛛识别的准确率,从而提高蜘蛛在你网站的抓取效率。
在这里提醒大家本文只是从蜘蛛一个抓取机制进行的解说,不代表蜘蛛就此一种抓取机制,在实际情况中是很多机制同时进行的。