Jsoup:从表中获取数据

Posted

技术标签:

【中文标题】Jsoup:从表中获取数据【英文标题】:Jsoup: get data from table 【发布时间】:2021-10-27 09:21:18 【问题描述】:

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

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

我认为这不是一个好的解决方案,我想。我在这里使用id,它是表格的一部分。更好的方法可能是获取Pages 之后出现的内容。但是,我不知道如何解决这个问题。非常欢迎任何帮助!

<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

【问题讨论】:

【参考方案1】:

更好的方法可能是获取 Pages 之后出现的内容。

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

你可以这样做:

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

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

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

有关所用符号的信息,请参阅Selector 语法。

【讨论】:

以上是关于Jsoup:从表中获取数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从表中逐块获取数据?

H2 数据库,从表中获取数据的问题

从表中获取数据的困难

EF - 从表中获取数据给出空值

MySQL:PHP:由于警告,无法从表中获取数据

Lua如何从表中获取数据