我正在研究一个基于java的爬虫程序。我想在我的爬虫程序中有恢复功能,用户可以在任何时候暂停爬虫,如果某个爬虫程序崩溃,他应该能够从爬虫程序停止的点开始上一次爬虫。
为此,我必须将所有outlink(在任何页面上都可以找到链接)存储在数据库中。我不确定哪一个数据库最适合这种系统,因为它需要从数据库中快速插入和检索链接,插入和检索的频率会很高。
很少有人建议我不要像mongodb那样使用sql,但我只想确保它是此类系统的最佳选择。
最佳答案
crawler4j是一个Java爬虫程序,也支持恢复功能。所以,如果你只是想有一个爬虫,我建议使用它。但如果你需要在你自己的爬虫程序中集成这个功能,我建议伯克利数据库。它是一种非常有效的基于键值的存储。您可以检查crawler4j的源代码,看看它是如何使用berkeley db快速存储和检索需要爬网的url的。
关于database - 爬虫应用数据库系统,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8747510/