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