如何在Java中将原始html(字符串)转换为htmlDocument

时间:2018-02-06 10:51:50

标签: java

我将html源代码作为java类中的简单字符串。我必须将它转换为htmlDocument(de.l3s.boilerpipe.sax.HTMLDocument)对象(稍后在samppipe中使用它)。如何将字符串转换为htmlDocument。 以下是代码

package tmp;

import java.net.URL;
import java.nio.charset.StandardCharsets;

import de.l3s.boilerpipe.document.TextDocument;
import de.l3s.boilerpipe.extractors.CommonExtractors;
import de.l3s.boilerpipe.sax.BoilerpipeSAXInput;
import de.l3s.boilerpipe.sax.HTMLDocument;
import de.l3s.boilerpipe.sax.HTMLFetcher;

public class Tmp {

        public static void main(String[] args) throws Exception {

        String url = "https://jang.com.pk/latest/444637-dna-was-taken-from-the-suspect-taken-from-mardan-asmaa";
        String str = HTMLFetcher.fetch(new URL(url)).toString();


//      HTMLDocument htmlDoc= new HTMLDocument(str, StandardCharsets.UTF_8);
        HTMLDocument doc = new HTMLDocument(str);

//      final HTMLDocument htmlDoc = HTMLFetcher.fetch(new URL(url));
        TextDocument doc = new BoilerpipeSAXInput(htmlDoc.toInputSource()).getTextDocument();
        String content = CommonExtractors.ARTICLE_EXTRACTOR.getText(doc);
        System.out.println(content);
        System.out.println("Finished");
    }

}

2 个答案:

答案 0 :(得分:1)

像这样,您可以创建HTMLDocument。

Charset cs = Charset.forName("utf-8");
HTMLDocument htmlDoc = new HTMLDocument(str.getBytes(cs),cs);

答案 1 :(得分:0)

检查HTMLDocument的源代码可以给出答案。

它有一个很酷的构造函数来获取html字符串。

public HTMLDocument(final String data) {
        Charset cs = Charset.forName("utf-8");
        this.data = data.getBytes(cs);
        this.charset = cs;
    }

所以

HTMLDocument doc = new HTMLDocument(htmlStr);