可扩展/可定制的Web爬网引擎/框架/库?

时间:2009-08-20 12:51:46

标签: language-agnostic hyperlink web-crawler

我有一个相对简单的案例。我基本上想要存储各种网站之间链接的数据,并且不想限制域名。我知道我可以使用一些http客户端库编写自己的爬虫,但我觉得我会做一些不必要的工作 - 确保不会多次检查页面,找出如何阅读和使用robots.txt文件,甚至可能试图让它并发和分布,我确信还有很多其他我尚未想到的事情。

所以我想要一个用于网络爬行的框架来处理这些事情,同时允许我指示如何处理响应(在我的情况下,只是提取链接并存储它们)。大多数抓取工具似乎都假设您正在为搜索索引网页,这并不好,我需要一些可自定义的东西。

我想将链接信息存储在MongoDB数据库中,因此我需要能够指示链接如何存储在框架中。虽然我已经将这个问题标记为与语言无关,但这也意味着我必须将选择限制在MongoDB支持的语言(Python,Ruby,Perl,PHP,Java和C ++)中的一个框架,这是一个非常宽网。我更喜欢动态语言,但我愿意接受任何建议。

我已经能够找到Scrapy(看起来整洁)和JSpider(看起来不错,但可能有点太“重型”,基于121页用户手册),但我想知道是否还有其他好的选择,我很想念。

3 个答案:

答案 0 :(得分:6)

我想您已经自己搜索过Stack Overflow,因为在标记为web-crawler的内容中有很多相似的问题?我没有广泛使用以下任何内容,我没有详细说明,只列出一些我觉得值得审查手头的任务:

嗯,祝好运的评论;)

答案 1 :(得分:0)

您也可以在Node.JS中使用PhantomJS尝试CasperJS。

答案 2 :(得分:0)

当问到这个问题时,{p> StormCrawler并不存在,但是这个问题完全符合要求。它采用Java语言,具有高度模块化和可扩展性,可以进行自定义以完全按照上述方式进行操作。