gpt4 book ai didi

java - 从论坛帖子中解析评论级别

转载 作者:行者123 更新时间:2023-11-30 01:18:52 24 4
gpt4 key购买 nike

是否可以像下面这样从这个网站上找到评论级别? https://www.ozbargain.com.au/node/249439#comment-3719026

我可以从 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 条等。

谢谢

最佳答案

for(Element column : e.select("ul")) {
//comment level
System.out.println(column.attr("class"));
levels.add(column.attr("class"));
}

上面代码中的e是从哪里来的?

无论如何,您需要解析类属性值才能找到评论级别。

这是一个有效的示例代码:

示例代码

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);
}

OUTPUT [https://www.ozbargain.com.au/node/249439#comment-3719026](可能会根据请求时间发生变化)

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]

OUTPUT [https://www.ozbargain.com.au/node/249604] (可能会根据请求时间发生变化)

Comments found: 14
[0, 1, 0, 1, 0, 1, 1, 2, 1, 0, 0, 1, 2, 0]

关于java - 从论坛帖子中解析评论级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37413397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com