如何从nutch中的特定标签中选择数据

时间:2016-08-04 12:52:09

标签: web-scraping web-crawler nutch

我是Apache Nutch的新手,我想知道是否可以抓取网页的选定区域。例如,仅选择div中的特定div和抓取内容。任何帮助,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:2)

您必须撰写plugin,以HtmlParseFilter展开以实现目标。

我认为你自己会做一些事情,比如解析html的特定部分,提取你想要的URL并将它们作为外链添加。

HtmlParseFilter实现:(下面的代码给出了一般的想法)

ParseResult filter(Content content, ParseResult parseResult, HTMLMetaTags metaTags, DocumentFragment doc){
    // get html content
    String htmlContent = new String(content.getContent(), StandardCharsets.UTF_8);
    // parse html using jsoup or any other library.
    String url = content.getUrl();
    Parse parse = parseResult.get(url);
    ParseData parseData = parse.getData();
    Outlink[] links = parseData.getOutlinks();
    // modify/select only required outlinks
    // return ParsePesult with modified outlinks
    return parseResult;
}

希望这会有所帮助。

如果您不熟悉插件,我编写了一个简单的插件“nutch-fetch-page”,它使用HtmlParseFilter界面将html页面和文本内容保存在本地驱动器上。您可以分叉/下载和修改代码。