2012-04-20 27 views
2

首先,我不是在寻找代码,只是一个关于主题说的方法的简单讨论。网页更新检测算法

我最近想知道如何检测(尽可能快)更改网站页面的最佳方式,假设我有100K个网站,每个网页的页面数量都不明确,爬虫确实需要访问每个页面,他们中的每一个曾经有一段时间?

回答

1

除非他们有RSS源(您仍然需要查看它们是否发生了变化),但确实无法找出网站何时发生变化,除非进行检查。然而,你可以做一些聪明的事情来提高效率。在您检查了一段时间之后,您可以建立一个预测模型,了解它们何时趋向更新。例如:这个新闻网站每2-3小时更新一次,但该博客每周只发布一篇文章。这可以为您节省很多检查,因为大多数网页实际上并不经常更新。谷歌这样做有助于拉动。一个简单的算法,将这项工作(取决于边缘如何切割你需要你的新闻是)是我自己设计的基于二进制搜索如下:

Start each site off with a time interval ~ 1 day 
Visit the sites when that time hits and check changes 
if something has changed 
    halve the time for that site 
else 
    double the time for that site 
If after many iterations you find it hovering around 2-3 numbers 
    fix the time on the greater of the numbers 

现在,这是一个简单的算法,发现该次对于检查是正确的,但如果您解析文本并在实际发布更新时看到模式,则可以做更有效的工作。