Web crawler 动态数据的新鲜爬行

Web crawler 动态数据的新鲜爬行,web-crawler,dynamic-data,Web Crawler,Dynamic Data,我正在尝试编写一个爬虫程序,从一个包含大约15GB数据的网站上抓取信息。我抓取信息并将其存储在数据库中。现在每周都会有新的页面被添加到网站上,同时旧页面也会被更新。这是否意味着每次进行编辑时,我都必须重新爬网整个15GB的数据并重新构建数据库。处理这个问题最简单的方法是什么?谷歌新闻是如何工作的,因为他们面临着类似的问题,即全球范围内的信息更新?到目前为止,我发现了以下关于这一主题的研究论文: 为此,是否总是需要编写自定义爬虫程序?我不能使用Scrapy或Nutch吗?在Nutch中,您可以按

我正在尝试编写一个爬虫程序,从一个包含大约15GB数据的网站上抓取信息。我抓取信息并将其存储在数据库中。现在每周都会有新的页面被添加到网站上,同时旧页面也会被更新。这是否意味着每次进行编辑时,我都必须重新爬网整个15GB的数据并重新构建数据库。处理这个问题最简单的方法是什么?谷歌新闻是如何工作的,因为他们面临着类似的问题,即全球范围内的信息更新?到目前为止,我发现了以下关于这一主题的研究论文:


为此,是否总是需要编写自定义爬虫程序?我不能使用Scrapy或Nutch吗?

在Nutch中,您可以按照说明使用AdaptiveFetchSchedule。它可以让Nutch重新抓取页面,同时检测页面是否被更改,并调整时间表以更频繁地重新抓取更改更频繁的页面,反之亦然。
当然,您可以只检查上次修改的标题(如果它们存在并且值得信任),如果日期早于上次爬网,则不必重新爬网。不确定在检测更改时是否已经用Nutch实现,或者是否使用了一些基于哈希的解决方案,但如果需要,手动执行听起来并不太困难。

就我个人而言,在我的爬虫程序中,我优先爬网新页面,而不是重新爬网已更新的旧页面。我编写代码的方式是,当页面发生变化时,我只需要部分更新数据库。但是,想象一下,你正在从imdb这样的网站上抓取一些数据,那里的收视率每天都在变化,新电影不断增加……你如何处理这些问题?很抱歉,我不知道问题出在哪里?大多数爬虫都必须处理更新…我的问题是,每次爬虫爬过imdb时,我是否必须解析每个页面并重建数据库?这不是一个昂贵的开销吗?谢谢你的回答。一旦我在Nutch上实际实现了相同的功能,我会将其标记为已接受。我正在处理imdb数据,imdb上最后修改的标题通常显示当前时间,因为我相信页面上有新闻更新。如果页面由于广告或其他原因不断变化,无论使用何种算法,它都会检测到变化。。。也许你应该在等式中加入元素黑名单。我为此制作了一个简单的插件: