使用 jsoup 从同一个 class 中的一些 div 中提取文本
Extract text from only some divs in the same class with jsoup
我想使用 jsoup 从网站的特定 <div>
中提取文本,但我不确定如何操作。
问题是,我想从 div 获取具有 class="name"
.
的文本
但是,可以更多<div>
s class(我不想从那些得到文本)。
在 HTML 文件中看起来像这样:
.
.
<div class="name">
Some text I don't want
<span class="a">Tree</span>
</div>
.
.
<div class="name">Some text I do want</div>
.
.
所以唯一的区别是我想要的文本 <div>
里面没有 <span>
。但是我还没有找到一种方法可以将其用作提取 jsoup 中文本的键。
可能吗?
使用 JSoup 的 selector syntax。例如 select 所有 div 的 class = "name" 使用
Elements nameElements = doc.select("div.name");
请注意,您 "do" 和 "don't" 上面想要的文本位于相同的 relative HTML 位置,事实上我有不知道为什么你想要一个或另一个。 HTML 和 JSoup 将看到它们相同。
如果要避免元素包含 span 元素,那么一种方法是遍历上面获得的元素并通过 select 或它们是否具有 span 元素进行测试:
Elements nameElements = doc.select("div.name");
for (Element element : nameElements) {
if (element.select("span").isEmpty()) {
System.out.println("No span");
System.out.println(element.text());
System.out.println();
} else {
System.out.println("span");
System.out.println(element.text());
System.out.println();
}
}
您可以 select 具有 class="name" 的所有 div 个元素,然后遍历它们。检查一个元素是否有子元素——如果没有,这就是你想要的div。
我想使用 jsoup 从网站的特定 <div>
中提取文本,但我不确定如何操作。
问题是,我想从 div 获取具有 class="name"
.
但是,可以更多<div>
s class(我不想从那些得到文本)。
在 HTML 文件中看起来像这样:
.
.
<div class="name">
Some text I don't want
<span class="a">Tree</span>
</div>
.
.
<div class="name">Some text I do want</div>
.
.
所以唯一的区别是我想要的文本 <div>
里面没有 <span>
。但是我还没有找到一种方法可以将其用作提取 jsoup 中文本的键。
可能吗?
使用 JSoup 的 selector syntax。例如 select 所有 div 的 class = "name" 使用
Elements nameElements = doc.select("div.name");
请注意,您 "do" 和 "don't" 上面想要的文本位于相同的 relative HTML 位置,事实上我有不知道为什么你想要一个或另一个。 HTML 和 JSoup 将看到它们相同。
如果要避免元素包含 span 元素,那么一种方法是遍历上面获得的元素并通过 select 或它们是否具有 span 元素进行测试:
Elements nameElements = doc.select("div.name");
for (Element element : nameElements) {
if (element.select("span").isEmpty()) {
System.out.println("No span");
System.out.println(element.text());
System.out.println();
} else {
System.out.println("span");
System.out.println(element.text());
System.out.println();
}
}
您可以 select 具有 class="name" 的所有 div 个元素,然后遍历它们。检查一个元素是否有子元素——如果没有,这就是你想要的div。