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

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

这个解决方案有点限制,我也想支持第二个选项 – 通过http复制子树.

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

我找不到任何这样做的java库.

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

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

理想的情况是:

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

谢谢.

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

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

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

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

点赞