首页 > 解决方案 > jsoup提取标签中元素的值

问题描述

我是 Jsoup 的新手。我正在尝试为变量“y”提取一系列值。我有一个这样的html:

<text class="price label" font-family="Dosis" font-size="12px" font-weight="800" fill="white" text-anchor="middle" x="49" y="408.0421247847397">5,24</text>

<text class="price label" font-family="Dosis" font-size="12px" font-weight="800" fill="white" text-anchor="middle" x="122" y="412.832428136177">5,11</text>

我想提取 y 的值,即 408.0421247847397、412.832428136177 以及属性之后和标签之前的值,即 5.24、5、11。

你能建议我一个方法吗?

我只能提取 y(408.0421247847397) 的第一个值。但不是第二个值(412.832428136177)。我也无法提取标题 5.24 和 5.11。我已经做好了 :

doc1 =Jsoup.parse(input,"UTF-8", "");
Elements values = doc1.select("g");
Elements xyz = doc1.select("text.price.label");
String abc = xyz.attr("y");

标签: javaweb-scrapingjsoup

解决方案


结果selectElements(复数)类 which extends ArrayList<Element>。这个类允许我们使用一些为 single 设计的方法Element,让我们访问一个(第一个)选定元素的值。当只选择一个元素时,这很有帮助。

但是,如果使用的查询找到了更多Element您想要访问的 s,您将需要遍历查询结果(此处Elements xyz)。为此,您可以使用循环

for (Element el :  xyz ){
    String yAttr = el.attr("y"); //get value of `y` attribute
    String text = el.text();     //get text which browser should show for this element
    ...
}

推荐阅读