2

我正在尝试使用 JSoup 和 Java 从网站中提取某些特定数据。到目前为止,我已经成功地实现了我想要实现的目标。

<ul class="beverageFacts">
<li><span>Årgång</span><strong>**2009**&nbsp;</strong></li>

我想提取上面 HTML 中 ** 里面的内容。我可以通过使用 JSoup 中的代码来做到这一点:

doc.select("ul.beverageFacts li:lt(1) strong");

我使用 lt(1) 是因为后面还有几个我想省略的列表项。

现在我的问题;我从中提取数据的网站上有一个可选的信息选项卡,它还有一个名为“beverageFacts”的类。我的代码现在也会提取该数据,我不希望它这样做。

该代码位于网站源代码的更下方,我也尝试在此处使用索引器 :lt(1) ,但它不起作用。

<div id="beverageMoreFacts" style="display: block">
<ul class="beverageFacts"><li class="half">
<span> Färg</span><strong> Ljusgul färg.</strong>

我的总体结果是我提取了“2009 Ljusgul färg”。而不仅仅是“2009”。我怎样才能编写我的代码,以便它只提取它成功完成的第一部分,并省略其余部分?

编辑:我使用以下方法得到相同的结果:

 doc.select("ul.beverageFacts li:eq(0) strong");

谢谢,Z

4

1 回答 1

0

您只有一个部分合格,而您应该同时合格。试试这个:

doc.select("ul.beverageFacts:eq(0) li:eq(0) strong");

你的意思是:给我每个饮料清单的第一个清单项目。你需要说的是:给我第一个饮料清单的第一项。

于 2012-06-10T10:36:15.170 回答