这里的问题是,如果我这样做:
Document doc = Jsoup.connect(url)
.timeout(30000)
.userAgent("Mozilla")
.followRedirects(true)
.get();
System.out.println(doc.select("body").text());
我把所有文字放在一个块中,我不想要那个。
假设我写了这样的代码:
String part="<div>
Primary div
<div>
Secondary div
</div>
</div>";
Document doc = Jsoup.parse(part);
Elements links = doc.select("div");
for(Element e:links){
out.println(e.text());
System.out.println(e.text());
}
输出结果为:
Primary div Secondary div
Secondary div
内部div的文字被抓了两次。
我希望抓取输出应该是这样的:
Primary div
Secondary div
我希望每个元素的文本都是唯一的,不包括子元素中的文本。
如何实现这一目标?嵌套子节点的数量可以多于一个。
答案 0 :(得分:0)
您没有获得Secondary div
的两份副本,而是两次输出它:一次作为Primary div
输出的一部分,然后再次单独输出。
如果您只想要一个元素的拥有文本而不是其子元素的文本,请使用Element#ownText
。