Java爬虫库 - 使用目录列表解析器进行递归HTTP子树下载

时间:2011-08-20 22:12:45

标签: java http web-crawler

我的应用程序当前通过从远程计算机通过共享磁盘复制文件系统树来读取数据,因此它从应用程序的角度来看作为文件系统深层复制。

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

库应该像wget --recursive那样解析目录列表并用它来遍历树。

我找不到任何执行此操作的java库。

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

我的应用程序中是否可以轻松使用这样的

理想情况下:

  • 在Maven Central Repository中发布,因为我正在使用Maven进行构建
  • 尽可能少依赖其他库
  • 不需要机器人排除支持 - 仅在有限的临时服务器上运行

感谢。

注意:请发布您个人使用的图书馆主页的指示。

1 个答案:

答案 0 :(得分:2)

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

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

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