Java在cassandra中爬网和存储

时间:2013-05-22 22:25:43

标签: java web-crawler

我有一个java项目,我想使用预先构建的网络爬虫,它给了我足够的灵活性,以便能够控制抓取哪些网址,然后一旦抓取工具输出我想要控制到哪里把它(cassandra与我自己的架构)。

总体情况是,我想提供网址列表(Google和Bing搜索),然后过滤返回的网址。我希望它然后抓取已过滤的网址(我可能想要更改网址查询字符串,但这不是一个硬性要求)。我想获取生成的html并使用Tika解析它,然后将数据拉出并存储它。

我正在关注Apache Droids,这是一个很好的选择,因为它似乎做了我提到的所有事情,但没有任何真正的文档。我会考虑Nutch或Heritrix,但用例似乎更像是一个完整的解决方案,在略读之后我看不到任何关于如何做想要的事情。

有没有人对这类事有经验?我大多需要一些建议,但是如果你知道做这类事情的例子也很好,因为我还是java的新手。

1 个答案:

答案 0 :(得分:0)

我不会说Droids是一个完善的框架。如果将它与Nutch进行比较,后者有很多历史,我认为它不那么稳定且记录较少。不过,我对Droids没有经验。

至于在cassandra中存储数据,我建议https://github.com/Netflix/astyanax 或赫克托耳 https://github.com/hector-client/hector

我在去年广泛使用了Hector,发现它非常简单易用。在Hector中开发比它的前辈更快:纯粹的Thrift / Pelops,但是Hector足够灵活,可以让你做出你期望从Thrift那里得到的细节。

最近我一直在关注astyanax,因为它是由一个更大的团队开发/支持并在更大范围内进行测试,这对我目前的工作领域很重要。但是,Hector在新cassandra版本中实现新功能通常更快,因此两个库都有其优点。