gpt4 book ai didi

java - Jsoup 在没有类或标签的情况下获取不同标签之间的特定数据

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:58 26 4
gpt4 key购买 nike

我正在尝试获取 < "b"> #8 的数据(带有随机文本)。

现在我有这段代码,可以给我我需要的标题

Document doc = Jsoup.connect(""); 
Elements title = doc.select("div.column.two-third");
Element k = title.select("b").get(8);

但我还需要文字。有可能吗?

<小时/>

网站代码示例我正在尝试获取数据

<div class="column two-third"> 

<div style="color:#000000">

<b>Title I dont want:</b> random text // "b" #0 </br>

<b>Title i dont want</b> random text // "b" #1 <br>

<b>Title i dont want:</b> random text // "b" #7 <br>

**<b>TITLE I WANT :</b> random text // "b" #8 <br>**

<div align="justify"> <br> <br> <b style="color:#000000">text i dont want</b><br>
<小时/>

如您所见,我想要的文本位于没有类或 ID 的 Div 中,而且文本没有标签(“p”)。我只需要#8。有可能吗?

最佳答案

是的,有可能:<b>之后的文本标签位于文本节点中。所以在捕获正确的<b>之后标签,jsoup 允许您使用 .parent().childNode(int index) 选择父元素中的特定节点( https://jsoup.org/apidocs/org/jsoup/nodes/Node.html#childNode-int- ) 并为您提供目标 <b> 的索引元素为 .siblingIndex() ,所以只需将索引处的 childNode 加 1 即可。

示例代码

Elements bTags = htmlDocument.select("div.column.two-third > div b");

if(bTags.size()>8){
Element title = bTags.get(8);
String text = title.parent().childNode(title.siblingIndex()+1).toString();
System.out.println(title.text() + "\n" + text);
}

输出

TITLE I WANT :
random text

关于java - Jsoup 在没有类或标签的情况下获取不同标签之间的特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41730174/

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