0

我正在尝试在特定标签下提取几个元素我有一堆<h5>我想用它们下面的 an<h6>和 a提取的元素。<table>我遇到的问题是:a)我有几个<h5>标签 b) <h6>和 a<table>不是<h5>. 所以例如h5 > table不会工作。

所以我想最后得到的是:来自这个网站: http ://tcat.nextinsight.com/routes.php?mrnid=453

Route 13 周一至周五,<h6>入境和餐桌,以及 Route 13 周一至周五,<h6>出境和餐桌。

一旦我有了整个表格,我就可以使用这个示例How to get a table from an html page using JAVA to work with the table

示例结构:(也可以在给定的 url 中找到)

<table width="890" border="0" cellspacing="3">
        <tr>
          <td colspan="20" bgcolor="#8cd2ef" class="heading"><h6>Outbound from center of Ithaca</h6></td>
        </tr>
        <br><h5>Route 13 - Saturday</h5><tr class="tableSub"><td>Green @ Commons</td>
<td>Seneca @ Commons</td>
<td>Third @ Hancock</td>
<td>Aldi</td>
<td>Lake @ Ithaca HS</td>
<td>Stewart Park</td>
<td>Shops at Ithaca Mall @ Sears</td>
</tr>
4

1 回答 1

1

选择器:

h5:contains(Route 13 Monday - Friday) + table

像这样使用:

Elements tables = doc.select("h5:contains(Route 13 Monday - Friday) + table");

将为您获取前面有<h5>of content的每个表"Route 13 Monday - Friday"

使用您提供的 URL 检查工作片段:

public static void main(String[] args) throws Exception {
    Document doc = Jsoup.connect("http://tcat.nextinsight.com/routes.php?mrnid=453").get();
    System.out.println(doc.title());
    Elements tables = doc.select("h5:contains(Route 13 Monday - Friday) + table");
    for (Element table : tables) {
        System.out.println(table);
        System.out.println("#\n#\n#\n#");
    }
}
于 2013-08-17T01:24:52.327 回答