我正在研究基于java的爬虫。我想在我的抓取工具中使用恢复功能,用户可以随时暂停抓取,如果抓取工具崩溃,他应该可以从抓取工具停止的位置开始上一次抓取。
为此,我必须在数据库中存储所有outlink(在任何页面中找到的链接)。我不确定哪种数据库最适合这种类型的系统,因为它需要非常快速的插入和数据库链接的回溯以及插入和回溯的频率非常高。
很少有人建议我使用像mongodb这样的非sql,但我只是想确保它是这类系统的最佳选择。
答案 0 :(得分:2)
crawler4j是一个java爬虫,也支持恢复功能。所以,如果您只想拥有一个爬虫,我建议使用它。但是如果您需要在自己的抓取工具中集成此功能,我建议使用Berkeley DB。它是一种非常有效的基于键值的存储。您可以查看crawler4j的源代码,了解它如何使用Berkeley DB快速存储和检索需要抓取的网址。