当前位置: 首页 > 知识库问答 >
问题:

Jsoup:从表元素获取链接

阙庆
2023-03-14

这里是表的一部分:

<tr>
   <td width="30" class="woBorder"><p align="center"><font size="3" color="Green"> 3 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-01-15 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=green> 15 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-01-16 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=red> 16 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-01-17 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 17 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-01-18 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 18 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-01-19 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 19 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-01-20 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 20 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-01-21 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 21 </font></td>
   <td class="woBorder">&nbsp</td>     <td width="30" class="woBorder"><p align="center"><font size="3" color="Green"> 7 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-02-12 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 12 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-02-13 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 13 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-02-14 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 14 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-02-15 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 15 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-02-16 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 16 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-02-17 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 17 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-02-18 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 18 </font></td>
   <td class="woBorder">&nbsp</td>     <td width="30" class="woBorder"><p align="center"><font size="3" color="Green"> 11 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-03-12 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 12 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-03-13 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 13 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-03-14 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 14 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-03-15 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 15 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-03-16 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 16 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-03-17 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 17 </font></td>
          <td width="30" class="woBorder"><a href="tran_TripDetail.php?TripDate=2018-03-18 00:00:00&PHPSESSID=sessionID">                      <p align="center"><font size="1" color=black> 18 </font></td>
</tr>

我需要从红色元素中获取url:

<p align="center"><font size="1" color=red> 16 </font></td>

我决定使用jsoup库,下面是我尝试做的:

Document document = Jsoup.connect(siteUrl).execute().parse();

Element table = document.select("table").get(2);
Elements links = table.getElementsByTag("a");
String date = table.select("*[color*='red']").first().toString();
System.out.println("Date: " + date);
for (Element link: links) {
    String url = link.attr("href");
    String text = link.text();

    System.out.println(text + ", " + url);
}

但是这样我就可以得到这个元素和所有的链接。我认为获取所有网址的列表并使用“日期”找到需要的东西不是最聪明的事情。那么,有人能给我一些建议吗,我该如何处理这项任务?

共有1个答案

靳富
2023-03-14

我假设示例中的HTML是一个输入错误,因为它的格式不正确(即ap标记缺少结束标记)。

如果HTML有效,则以下代码将在选择表元素后获得所需的url:

Element redElement = table.select("*[color*='red']").first();

// Get the sibling (a tag) of its parent (p tag) and get the value of href.
String url = redElement.parent().previousElementSibling().attr("href");
System.out.println("URL: " + url);
 类似资料:
  • 我能够在等式(1)中一个接一个地获得所有细节。 在示例中: 在HTML表格中,当我做等式(0)时,我得到GK,NS,PS。当我做等式(1)时,我得到99 88 55。 有没有一种方法可以让我使用JSOUP作为 现在我得到了两个不同的字符串数组。

  • 我们会很感激你的帮助。

  • 我的代码不会获取这样的链接。使用doc.select也没有帮助。我的问题是,如何从页面中获得所有链接? 编辑:我想我知道问题出在哪里了。我遇到麻烦的页面写得很糟糕,HTML验证器抛出了大量的错误。这会引起问题吗?

  • 在一个<代码>中

  • 我正在尝试编写一个方法,该方法接受整数n,并返回一个新列表,其中包含当前对象list的前n个元素,其顺序与它们在当前列表中出现的顺序相同。 我的解决方案如下: 我知道该方法从声明一个新列表开始。从那里,它声明了“旅行”节点,用于在当前列表中迭代。此外,我相信“最后”只是为了跟踪当前对象中的最后一个节点。 我也理解while循环的第一部分;然而,我不明白为什么有条件 是在场的。当代码第一次执行时,节