繁体   English   中英

如何使用JSoup分别从网页的所有元素中提取文本?

[英]How to extract text from all the elements in a webpage individually, using JSoup?

这里的问题是,如果我这样做:

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

我希望每个元素的文本都是唯一的,从子元素中排除该文本。

如何做到这一点? 嵌套子项的数量可以不止一个。

您没有得到Secondary div两个副本,而是将其输出两次:一次作为Primary div输出的一部分,然后再次独立输出。

如果只需要元素自己的文本而不是其子元素的文本,请使用Element#ownText

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM