1

次のコードを使用して Web ページからテキスト コンテンツを抽出しています。私のアプリは Google App Engine でホストされており、BoilerPipe Web APIとまったく同じように動作します。問題は、プレーン テキスト形式でしか結果を取得できないことです。回避策を見つけるためにライブラリをいじりましたが、結果を HTML で表示する方法が見つかりませんでした。私がしようとしているのは、元の BoilerPipe Web API hereのように、HTML (抽出モード) のようなオプションを含めることです。

これは、プレーンテキストを抽出するために使用しているコードです。

 PrintWriter out = response.getWriter();
    try {
        String urlString = request.getParameter("url");
        String listOUtput = request.getParameter("OutputType");
        String listExtractor = request.getParameter("ExtractorType");
        URL url = new URL(urlString);
        switch (listExtractor) {
            case "1":
                String mainArticle = ArticleExtractor.INSTANCE.getText(url);
                out.println(mainArticle);
                break;
            case "2":
                String fullArticle = KeepEverythingExtractor.INSTANCE.getText(url);
                out.println(fullArticle);
                break;
        }
    } catch (BoilerpipeProcessingException e) {
        out.println("Sorry We Couldn't Scrape the URL you Entered " + e.getLocalizedMessage());
    } catch (IOException e) {
        out.println("Exception thrown");
    }

結果を HTML 形式で表示する機能を組み込むにはどうすればよいですか?

4

1 に答える 1

3

私は Boilerpipe のソース コードを使用しており、次のコードで質問を解決します。

String urlString = "your url";
URL url = new URL(urlString);
URI uri = new URI(urlString);

final HTMLDocument htmlDoc = HTMLFetcher.fetch(url);

final BoilerpipeExtractor extractor = CommonExtractors.DEFAULT_EXTRACTOR;

final HTMLHighlighter hh = HTMLHighlighter.newExtractingInstance();
hh.setOutputHighlightOnly(true);

TextDocument doc;

String text = "";

doc = new BoilerpipeSAXInput(htmlDoc.toInputSource()).getTextDocument();
extractor.process(doc);
final InputSource is = htmlDoc.toInputSource();
text = hh.process(doc, is);

System.out.println(text);

ソース

于 2016-06-01T08:34:54.777 に答える