gpt4 book ai didi

java - 如何在jsoup中获取类(class)的 child

转载 作者:行者123 更新时间:2023-12-01 21:19:06 24 4
gpt4 key购买 nike

我想从网站上抓取评论。我在 jsoup 类中获取 p 标签时遇到问题。示例 html 代码如下

<html>
<head>
<title>My webpage</title>
</head>
<body>
<div class="container">
<div class="comment">
<p>This is comment</p>
</div>
</div>
</body>
</html>

这是我的java代码

public static void main(String args[]){
Document doc = null;
try {

doc = Jsoup.connect("https://homeshopping.pk/products/Amazon-Fire-Phone-%284G%2C-32GB%2C-Black%29-Price-in-Pakistan.html").get();
System.out.println("Connect successfully");
org.jsoup.select.Elements element = doc.select("div.post-message");

System.out.println(element.get(0).text());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

最佳答案

您尝试获取的页面的评论部分不是简单的 HTML 内容。初始页面加载后,评论将通过 Javascript 加载到 DOM。 JSoup是一个HTML解析器,因此您无法通过Jsoup获取页面的评论。要获取此类内容,您需要一个嵌入式浏览器组件。看看这个答案:Is there a way to embed a browser in Java?

以下代码适用于您提供的特定 HTML 字符串。

试试这个:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class Test {

public static void main(String[] arg)
{
Document doc = null;
try {

doc = Jsoup.parse("<html> "
+ "<head> "
+ "<title>My webpage</title> "
+ "</head> <body> <div class=\"container\"> "
+ "<div class=\"comment\"> "
+ "<p>This is comment</p> "
+ " </div> </div> </body></html> ");

Elements element = doc.select(".container").select(".comment");
System.out.println(element.get(0).select("p").text());

}
catch (Exception e)
{
e.printStackTrace(); }

}
}

要连接网址,请使用:

doc = Jsoup.connect("https://homeshopping.pk/products/Amazon-Fire-Phone-%284G%2C-32GB%2C-Black%29-Price-in-Pakistan.html").timeout(60*1000).userAgent("Mozilla").get();

关于java - 如何在jsoup中获取类(class)的 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39457384/

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