有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用Jsoup或其他解析器解析此站点?

我正在尝试解析一个页眉中没有定义编码的页面,在它定义ISO-8859-1为编码的HTML中。Jsoup无法使用默认设置解析它(默认情况下,HTMLunit和PHP的简单HTML Dom解析器也无法处理它)。即使我自己为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);

谢谢你的建议


共 (1) 个答案

  1. # 1 楼答案

    使用URL时,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.");
    }