如何从NBoilerPipe获取HTML输出?

时间:2012-12-11 17:49:41

标签: .net html mono boilerpipe

NBoilerPipe是BoilerPipe Java库的Mono端口。我已经设法在.NET 4中使用它而没有太多麻烦(一些库引用需要修复/等)。但是,搜索代码时,我找不到HTML输出的任何“钩子”。例如,GetText()方法只有一个输入参数,我看不到任何其他方法。如何从NBoilerPipe获取HTML输出?

以下是在.NET4中使用的示例NBoilerPipe代码:

          String url = "http:// <etc> ";
        String page = String.Empty;
        WebRequest request = WebRequest.Create (url);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
        Stream stream = response.GetResponseStream ();
        using (StreamReader streamReader = new StreamReader (stream, Encoding.UTF8)) {
            page = streamReader.ReadToEnd ();
        }           
        String text = ArticleExtractor.INSTANCE.GetText (page);
        Console.WriteLine ("Text: \n" + text);

2 个答案:

答案 0 :(得分:0)

我有同样的问题。我设法通过使用以下方法来解决它。

http://boilerpipe-web.appspot.com/

答案 1 :(得分:0)

我知道这是一个老问题,而且我对.Net不熟悉(尽管 在我看来,它就像Java),而且我也不是任何专家 意味着,但是我认为这可能会帮助其他有类似问题的人。

您使用的INSTANCE方法仅返回文本。如果你 要获取HTML,您需要创建一个BoilerpipeExtractor和一个 HTMLHighlighter。然后,您可以使用其process方法来获取 您正在寻找。

final BoilerpipeExtractor extractor = CommonExtractors.ARTICLE_EXTRACTOR;
final HTMLHighlighter hh = HTMLHighlighter.newExtractingInstance();

.newExtractingInstance()可以为您提供相关的信息 HTML。另一个选项是.newHighlightingInstance(),突出显示 主要文本,但保持整个HTML文档完整。

此后,您需要做的就是调用HTMLHighlighter的{​​{1}} 方法:

process

System.out.println(hh.process(url, extractor)); 也可以是processprocess(TextDocument doc, InputSource is)

Github repo中浏览源代码。有笔记 什么都做。我寻找了Javadocs,但找不到 他们了。

在以下位置找到几乎完全这样的演示 HTMLHighlightDemo在同一仓库中。