Jsoup:从表中获取数据

Jsoup: get data from table

提问人:menteith 提问时间:8/27/2021 最后编辑:menteith 更新时间:8/28/2021 访问量:109

问:

我想使用 Jsoup 从网页获取。经过反复试验,我能够使用以下代码来做到这一点:71–85

document.select("#row_13 > div.row-desc > div").text();

我不认为这是一个好的解决方案,我想。我在这里使用它是表的一部分。更好的方法也许是获得之后出现的内容。但是,我完全不知道如何处理这个问题。任何帮助将非常欢迎!idPages

<div style="" class="  row row-even" id="row_13">
   <div class="row-label" >
      <div class="white_label ">Pages</div>
   </div>
   <div class="row-desc">
      <div class="white_desc " style="width: 100%">
         71–85
      </div>
   </div>
</div>

电子数据交换(EDI)以上内容摘自以下页面: http://cejsh.icm.edu.pl/cejsh/element/bwmeta1.element.desklight-dc6b14c1-8478-426a-8f2e-bb5636e0a5e9

Java jsoup html 解析

评论


答:

1赞 Janez Kuhar 8/28/2021 #1

更好的方法也许是获得之后出现的内容。Pages

首先,选择具有包含文本“Pages”的类的元素。 然后,选择该元素的第一个同级并获取其文本。row-label

您可以这样做:

document.select(".row-label:contains(Pages) + *").first().text();

如果您知道一个事实,您甚至可以省略一个包含文本“Pages”的 class 元素:.first()row-label

document.select(".row-label:contains(Pages) + *").text();

有关所用表示法的信息,请参阅选择器语法。