我试图解析其标题中没有定义编码的页面,在HTML中它将ISO-8859-1定义为编码。 Jsoup无法使用默认设置解析它(默认情况下,HTMLunit和PHP的Simple HTML Dom Parser也无法处理它)。即使我自己定义了Jsoup的编码,它仍然无法正常工作。无法弄清楚原因。
这是我的代码:
String url = "http://www.parkett.de";
Document doc = null;
try {
doc = Jsoup.parse(new URL(url).openStream(), "ISO-8859-1", url);
// doc = Jsoup.parse(new URL(url).openStream(), "CP1252", url);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Element extractHtml = null;
Elements elements = null;
String title = null;
elements = doc.select("h1");
if(!elements.isEmpty()) {
extractHtml = elements.get(0);
title = extractHtml.text();
}
System.out.println(title);
感谢您的任何建议!
答案 0 :(得分:1)
使用网址时,chapters 4& 9 of the cookbook建议使用Jsoup.connect(...).get()
。 Chapter 5建议在从本地文件加载文档时使用Jsoup.parse()
。
public static void main(String[] args) {
Document doc = null;
try {
doc = Jsoup.connect("http://www.parkett.de/").get();
} catch (IOException e) {
e.printStackTrace();
}
Element firstH1 = doc.select("h1").first();
System.out.println((firstH1 != null) ? firstH1.text() : "First <h1> not found.");
}