我将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");
}
}
答案 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);