网页发生变化,对搜索引擎来说的确是件头疼的事,最简单直接的办法就是让爬虫重新下载一遍,然后比较网页指纹来确定网页变化,但当网页规模很大时(下载一遍很耗时),以及网页搜索新鲜性要求较高时,这笨法就歇菜了。
但是仍有一些途径可以优化和改进:
(1) 为减少浏览器对web服务器流量过大,http 1.1 设计了 if-modified-since 和 E-tag 功能,你可以在每一次下载后,记住last-modified-time 和 E-tag内容,然后下一次抓取时,在http协议上带上这些值,如果内容没变化,web服务器直接返回304页面未变化错误码,从而快速得出网页未变化结论;此法判断不出,在跳入指纹比较。
(2) 从效率上考虑,我们不能对所有网页一视同仁,而应该重点检查;测试发现,大部分网站制作的网页变化应该有一定规律的,比如首页和论坛列表页等容易发生变化,但老新闻内容页可能几年都不会发生变化;只要把经常变的给揪出来,变化内容就顺便发现了,那么怎么跟踪这些变化呢?可以记录每个url的阶段性变化历史(如访问了几次,变化了几次),然后下次抓取时,对其进行预测,优先级排序,经常变化的经常访问。
北京网站建设 北京网页设计 网站制作(www.bjycxf.com)