Java 解析论坛帖子中的评论级别

Java 解析论坛帖子中的评论级别,java,android,html,jsoup,Java,Android,Html,Jsoup,有没有可能像下面这样从这个网站上找到评论级别? 从jsoup中,我能够解析注释、用户名等,但是我在获取正确的注释级别时遇到了困难 查看该页面的源代码时,除非我读错了,否则与正确的实时帖子不匹配 有办法解决这个问题吗 我能够使用以下方法生成源注释级别: String url = "https://www.ozbargain.com.au/node/249439"; Document doc = Jsoup.connect(url).get(); E

有没有可能像下面这样从这个网站上找到评论级别?

从jsoup中,我能够解析注释、用户名等,但是我在获取正确的注释级别时遇到了困难

查看该页面的源代码时,除非我读错了,否则与正确的实时帖子不匹配

有办法解决这个问题吗

我能够使用以下方法生成源注释级别:

        String url = "https://www.ozbargain.com.au/node/249439";
        Document doc = Jsoup.connect(url).get();
        Elements level = doc.select("ul.comment");


         for(Element column : e.select("ul")){
                //comment level
                System.out.println(column.attr("class"));
                levels.add(column.attr("class"));
            }
但它看起来不对。仅显示0级评论中的1级评论等

谢谢

从上述代码中,
e
来自何处

无论如何,您需要解析class属性值才能找到注释级别

以下是一个工作示例代码:

示例代码 输出[https://www.ozbargain.com.au/node/249604](可能会根据请求时间而变化)
哦,哇,这是我第一次遇到Matcher班。这似乎是一个很好的方法,可以过滤掉所有不必要的信息,这些信息是我一直想得到的。谢天谢地,虽然看起来确实有点混乱,但我会尝试按照这种设计模式来解决下一个问题。我刚刚又看了一遍,似乎还有另一个问题。在源代码中,在第一条注释(级别0)之后,它不会显示任何其他级别0(新注释,而不是回复)。我不知道该怎么做,因为没有显示“类”,只有一个等级0
ul.level0
保存对报价的所有评论和回复。是的,它显示第一个level0,但由于某种原因,源停止显示未来的level0,并将该部分留空。例如,有8条注释,假设为5条0级注释和3条1级注释。但从源头上看,它的[0,1,1,1]。因此,它缺少介于两者之间的0。假设解为[0,1,0,1,0,1,0,0]。谢谢,我希望你能理解。请看我的更新。不要犹豫发布新的测试用例。
for(Element column : e.select("ul")) {
    //comment level
    System.out.println(column.attr("class"));
    levels.add(column.attr("class"));
}
public static void main(String[] args) throws IOException {
    String url="https://www.ozbargain.com.au/node/249439#comment-3719026";
    Document doc = Jsoup.connect(url).get();
    Elements comments = doc.select("div.comment-wrap");

    Matcher levelMatcher = Pattern.compile("(?i)^(.*level)(\\d+)(.*)$").matcher("");
    List<String> levels = new ArrayList<>();

    System.out.println("Comments found: "+ comments.size());

    for (Element comment : comments) {            
        if (levelMatcher.reset(comment.parent().parent().className()).find()) {
            levels.add(levelMatcher.replaceAll("$2"));
        }
    }

    System.out.println(levels);
}
Comments found: 38
[0, 1, 2, 3, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 2, 3, 3, 1, 2, 3, 3, 0, 1, 2, 3, 2, 3, 3, 2, 0, 0, 0, 1, 2, 3]
Comments found: 14
[0, 1, 0, 1, 0, 1, 1, 2, 1, 0, 0, 1, 2, 0]