我会将Apache Nutch用于我的Java应用程序,以便从一个或多个网站抓取网页。基本上,我需要为Web爬虫找到的每个网页调用我的Java应用程序的方法,以便处理页面内容(文本等)。怎么做到这一点?
答案 0 :(得分:3)
好吧,你的问题似乎是"XY Problem",Nutch可以用作自定义Java应用程序中的库,bin/nutch
和bin/crawl
脚本基本上只执行几个Java类正确的参数,因此在您的应用程序中,您可以使用正确的参数调用正确的类,查看bin/crawl
脚本将为您提供正确的步骤(和类)序列,以调用完整循环爬网。这应该只用于小爬行。
现在,回到XY问题,如果你需要的只是从网页中提取自定义文本/元数据,你可以扩展Nutch本身,而无需编写自定义应用程序。从您描述的内容看起来就像是在使用自定义解析器/索引插件之后。如果是这种情况,我建议您查看标题插件(https://github.com/apache/nutch/tree/master/src/plugin/headings),这是编写您自己的HtmlParseFilter
插件的一个非常好的起点。你仍然需要编写自定义代码,但它将包含在Nutch插件中。
此外,您可以查看https://issues.apache.org/jira/browse/NUTCH-1870,此插件允许使用XPath表达式提取HTML的自定义部分。