gpt4 book ai didi

java - 区分表格元素

转载 作者:行者123 更新时间:2023-12-01 13:42:26 25 4
gpt4 key购买 nike

我正在尝试使用 Jsoup 解析器从某个表中获取数据。

表格的HTML代码:

<table class="ednevnik-seznam_ur_teden">
<tr>
<th width="10%">
<div style="color:black;">Ura</div>
<div style="font-size:11px;">&nbsp;</div></th>
<th class="ednevnik-seznam_ur_teden-th-danes">
<div>Ponedeljek</div>
<div style="font-size:10px;font-weight:normal;color:#777;">16. 12.</div>
</th>
<th >
<div>Torek</div>
<div style="font-size:10px;font-weight:normal;color:#777;">17. 12.</div>
</th>
<th >
<div>Sreda</div>
<div style="font-size:10px;font-weight:normal;color:#777;">18. 12.</div>
</th>
<th >
<div>Četrtek</div>
<div style="font-size:10px;font-weight:normal;color:#777;">19. 12.</div>
</th>
<th >
<div>Petek</div>
<div style="font-size:10px;font-weight:normal;color:#777;">20. 12.</div>
</th>
</tr>
<tr>
<td width="10%" class="ednevnik-seznam_ur_teden-td ednevnik-seznam_ur_teden-ura">

<div class="black bold text14" style="padding-bottom:0px;">1. ura</div>
<div class="text10 gray">7:00 - 7:45</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-1-2013-12-16" class="ednevnik-seznam_ur_teden-td ednevnik-seznam_ur_teden-td-danes">
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-1-2013-12-17" class="ednevnik-seznam_ur_teden-td ">
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-1-2013-12-18" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Matematika">MAT</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
M. Baloh, 108 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-1-2013-12-19" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Izdelava osnovnih vezij praksa">IOVP</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
R. Fele, ED5 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-1-2013-12-20" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Slovenščina">SLO</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
S. Gutman, 107 </div>

</div>
</td>
</tr>
<tr>
<td width="10%" class="ednevnik-seznam_ur_teden-td ednevnik-seznam_ur_teden-ura">

<div class="black bold text14" style="padding-bottom:0px;">2. ura</div>
<div class="text10 gray">7:50 - 8:35</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-2-2013-12-16" class="ednevnik-seznam_ur_teden-td ednevnik-seznam_ur_teden-td-danes">
<div class="ednevnik-seznam_ur_teden-urnik ednevnik-seznam_ur_teden-td-danes" style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Geografija">GEO</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
S. Bec, 109 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-2-2013-12-17" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Angleščina">ANG</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
I. Lesjak, 106 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-2-2013-12-18" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Slovenščina">SLO</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
S. Gutman, 107 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-2-2013-12-19" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Izdelava osnovnih vezij praksa">IOVP</span> </td>
<td style="border:none;" align="right"><a href="javascript:;" onclick="$('#ednevnik-seznam_ur_teden-blok-2-2013-12-19').toggle();stop_propagation(event);" class="ednevnik-seznam_ur_teden-vec_ur" title="Več skupin">2</a></td>
</tr>
</table>
<div class="text11">
R. Fele, ED5 </div>

</div>
<div id="ednevnik-seznam_ur_teden-blok-2-2013-12-19" class="ni_prvi"><div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;border-top:1px solid #E6E6E6;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Infor.s tehniškim kom. vaje">ITKV</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
S. Kirn, 207 </div>

</div>
</div> </td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-2-2013-12-20" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Matematika">MAT</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
M. Baloh, 108 </div>

</div>
</td>
</tr>
<tr>
<td width="10%" class="ednevnik-seznam_ur_teden-td ednevnik-seznam_ur_teden-ura">

<div class="black bold text14" style="padding-bottom:0px;">3. ura</div>
<div class="text10 gray">8:40 - 9:25</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-3-2013-12-16" class="ednevnik-seznam_ur_teden-td ednevnik-seznam_ur_teden-td-danes">
<div class="ednevnik-seznam_ur_teden-urnik ednevnik-seznam_ur_teden-td-danes" style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Slovenščina">SLO</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
S. Gutman, 107 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-3-2013-12-17" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Kemija">KEM</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
S. Kovač Hace, 204 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-3-2013-12-18" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Angleščina">ANG</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
I. Lesjak, 106 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-3-2013-12-19" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Izdelava osnovnih vezij praksa">IOVP</span> </td>
<td style="border:none;" align="right"><a href="javascript:;" onclick="$('#ednevnik-seznam_ur_teden-blok-3-2013-12-19').toggle();stop_propagation(event);" class="ednevnik-seznam_ur_teden-vec_ur" title="Več skupin">2</a></td>
</tr>
</table>
<div class="text11">
R. Fele, ED5 </div>

</div>
<div id="ednevnik-seznam_ur_teden-blok-3-2013-12-19" class="ni_prvi"><div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;border-top:1px solid #E6E6E6;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Infor.s tehniškim kom. vaje">ITKV</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
S. Kirn, 207 </div>

</div>
</div> </td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-3-2013-12-20" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Izdelava osnovnih vezij">IOV</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
J. Kalšek, 112 </div>

</div>
</td>
</tr>
<tr>
<td width="10%" class="ednevnik-seznam_ur_teden-td ednevnik-seznam_ur_teden-ura">

<div class="black bold text14" style="padding-bottom:0px;">4. ura</div>
<div class="text10 gray">9:30 - 10:40</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-4-2013-12-16" class="ednevnik-seznam_ur_teden-td ednevnik-seznam_ur_teden-td-danes">
<div class="ednevnik-seznam_ur_teden-urnik ednevnik-seznam_ur_teden-td-danes" style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Zgodovina">ZGO</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
V. Kralj, 109 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-4-2013-12-17" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Umetnost">UME</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
S. Bec, 109 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-4-2013-12-18" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Geografija">GEO</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
S. Bec, 109 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-4-2013-12-19" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Angleščina">ANG</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
I. Lesjak, 106 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-4-2013-12-20" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Informatika s tehniškim komuniciranjem">ITK</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
I. Pavlič, 207 </div>

</div>
</td>
</tr>
<tr>
<td width="10%" class="ednevnik-seznam_ur_teden-td ednevnik-seznam_ur_teden-ura">

<div class="black bold text14" style="padding-bottom:0px;">5. ura</div>
<div class="text10 gray">10:45 - 11:30</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-5-2013-12-16" class="ednevnik-seznam_ur_teden-td ednevnik-seznam_ur_teden-td-danes">
<div class="ednevnik-seznam_ur_teden-urnik ednevnik-seznam_ur_teden-td-danes" style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Matematika">MAT</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
M. Baloh, 108 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-5-2013-12-17" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Slovenščina">SLO</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
S. Gutman, 107 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-5-2013-12-18" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Upravljanje s programirljivimi napravami">UPN</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
R. Fele, 216 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-5-2013-12-19" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Kemija">KEM</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
S. Kovač Hace, 204 </div>

</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-5-2013-12-20" class="ednevnik-seznam_ur_teden-td ">
<div class="ednevnik-seznam_ur_teden-urnik " style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Informatika s tehniškim komuniciranjem">ITK</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
I. Pavlič, 207 </div>

</div>
</td>
</tr>
<tr>
<td width="10%" class="ednevnik-seznam_ur_teden-td ednevnik-seznam_ur_teden-ura">

<div class="black bold text14" style="padding-bottom:0px;">6. ura</div>
<div class="text10 gray">11:35 - 12:20</div>
</td>
<td width="18%" id="ednevnik-seznam_ur_teden-td-6-2013-12-16" class="ednevnik-seznam_ur_teden-td ednevnik-seznam_ur_teden-td-danes">
<div class="ednevnik-seznam_ur_teden-urnik ednevnik-seznam_ur_teden-td-danes" style="color:#444;"> <table class="w100 collapse">
<tr>
<td style="border:none;" class="text14 bold"><span title="Izdelava osnovnih vezij">IOV</span> </td>
<td style="border:none;" align="right"></td>
</tr>
</table>
<div class="text11">
J. Kalšek, 216 </div>
//code goes on here

抱歉,代码比较乱,您可以尝试自己查看页面源代码:https://www.easistent.com/urniki/cc45c5d0d303f954588402a186f5cdba5edb51d6/razredi/16515

但有人已经告诉我,它在某些国家/地区无法打开该页面。

因此,如果每个 td 或至少 tr 都有自己唯一的 ID 或 CLASS,那么这就不成问题了。但它们都是相同的,每个 td 内部都有另一个 td ,其类别为“text 14粗体”,并且在该 td 内,有一个span 具有特定的标题。但这个标题对我没有帮助,因为如果这个表被更新,代码将毫无用处,因为标题也会改变。

或者我可能以错误的方式处理这个问题,并且有一个更好的库可以更轻松地解析 html?

我真的不擅长解释,我无法向任何搜索引擎解释这一点,所以如果有人提供帮助,我将非常感激。

最佳答案

查看源代码,保存时间表的感兴趣的表如下:

<table class="ednevnik-seznam_ur_teden">

每一行都由表主体内的 tr 元素表示。A- 因此可以使用 css 选择器和语法来选择行

Elements e = doc.select("table.ednevnik-seznam_ur_teden tbody tr span");

它只是告诉 Jsoup 选择类 的表的 tbody 内的 tr 元素内的所有 span 元素ednevnik-seznam_ur_teden。有点嵌套,但很容易理解。

所选节点的 text 属性的输出将是 span 元素内的所有文本。

要分隔 tr 元素,只需在选择元素时使用 tr:eq(n) 语法即可。 tr:eq(n) 告诉选择器仅选择索引等于 ntr。例如,要按照您在评论中建议的方式选择第二行的值,可以使用以下方法:

Elements e = doc.select("table.ednevnik-seznam_ur_teden tbody tr:eq(2) span");
for (Element element : e) {
System.out.println(element.text());
}

将输出

GEO
ANG
SLO
IOVP
ITKV
MAT

关于java - 区分表格元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20612794/

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