2016-02-22 3 views
0

Я использую следующий код для извлечения текстового содержимого с веб-страниц, мое приложение размещено в Google App Engine и работает точно так же, как BoilerPipe Web API. Проблема в том, что я могу получить результат только в текстовом формате. Я играл вокруг библиотеки, чтобы найти работу, но не смог найти способ отображения результата в HTML. Я пытаюсь включить такой вариант, как HTML (режим извлечения), как в исходном веб-API BoilerPipe here.Как получить результат извлечения BoilerPipe в 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?

ответ

2

Я использую исходный код 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); 

Source