2011-08-20 59 views
4

我的应用程序当前通过从远程机器通过共享磁盘复制文件系统树来读取数据,所以它从应用程序的角度作为文件系统深层复制工作。Java爬虫库 - 使用目录列表解析器下载递归HTTP子树

此解决方案有点限制,我还想通过http支持第二个选项 - 复制子树。

图书馆应该做一些像wget --recursive这样的解析目录列表并使用它遍历树。

我找不到任何这样做的Java库。

我能够自己实现这样的功能(使用NekoHTML或类似的东西),但我不喜欢重新发明轮子。

是否有这样的,我可以在我的应用程序内容易使用

理想:

  • 发表在Maven的中央仓库,因为我使用Maven为构建
  • 与其他图书馆尽可能少依赖尽可能
  • 不需要机器人排除支持 - 将在有限的操作仅限临时服务器组

谢谢。

注意:请张贴指向您个人使用的图书馆的主页的指针。

+0

你有没有找到解决方案? –

+0

不幸的是:( –

回答

2

Norconex HTTP Collector给定一个或多个起始URL,像树一样遍历网站。它可以用作应用程序中的Java库,或者用作命令行应用程序。您可以决定如何处理每个抓取的文档。作为一个成熟的网络爬虫,它可能比你以前做的更多,但你可以配置它以满足你的需要。

例如,它会默认提取您文档中的文本,并让您决定如何处理该文本,方法是通过插入“提交者”(即提交提取内容的位置)。在你的情况下,我认为你只想要原始文档而忽略文本转换部分。您可以通过插入自己的文档处理器,然后“过滤”文档,以便在您按照自己的方式处理文档时停止处理。

该项目是开源的,托管在Github上,完全“mavenized”。它支持robots.txt,但如果你愿意,它可以关闭它。唯一的缺点是有很多依赖关系,但是由于您使用的是Maven,因此应该自动解决这些问题。您会在产品网站上找到Maven repository info

+0

这看起来像一个非常好的方向,我会探索它 - 谢谢! –