1

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);
4

2 回答 2

0

我遇到过同样的问题。我设法通过使用以下方法解决了它。

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

于 2013-10-08T10:12:31.537 回答
0

我知道这是一个老问题,而且我不熟悉 .Net(尽管它对我来说看起来像 Java),而且我也不是一个专业的程序员,但我认为这可能会帮助其他有类似情况的人问题。

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

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

.newExtractingInstance()是只为您提供相关 HTML 的那个。另一个选项是.newHighlightingInstance(),它突出显示正文但保持整个 HTML 文档完整。

之后您需要做的就是调用HTMLHighlighter'process 方法:

System.out.println(hh.process(url, extractor));

process也可以是process(TextDocument doc, InputSource is)or process(TextDocument doc, String origHTML)

查看Github repo中的源代码。关于每件事的作用都有注释。我查找了 Javadocs,但再也找不到它们了。

在同一个 repo 中的HTMLHighlightDemo中找到几乎完全一样的演示 。

于 2018-11-14T12:22:35.323 回答