我正在尝试编写一个抓取工具来抓取包含大约15 GB数据的网站的信息。我抓取信息并将其存储在我的数据库中。现在,新页面每周都会继续添加到网站,同时旧页面也会更新。这是否意味着我必须重新抓取整个15 GB的数据,并在每次进行某些编辑时再次构建我的数据库。处理这个问题最简单的方法是什么? Google新闻如何运作,因为他们面临着类似的全球信息更新问题?到目前为止,我已经找到了关于这个主题的以下研究论文:
http://oak.cs.ucla.edu/~cho/papers/cho-tods03.pdf
是否始终需要为此目的编写自定义爬网程序?我不能使用Scrapy或Nutch吗?
答案 0 :(得分:1)
你在Nutch中可以做的是使用AdaptiveFetchSchedule,如here所述。它让Nutch重新抓取一个页面,检测它是否在此期间被更改,并使计划更频繁地重新抓取更频繁更改的页面,反之亦然。 当然,您可以检查Last-Modified标头是否存在并且是否可信,如果日期在上次爬网之前,则不会重新爬网。不确定在检测到更改时是否已在Nutch中实现,或者是否使用了基于散列的解决方案,但如果需要,手动操作并不难。