我试图在特定标签下提取几个元素
我有一堆<h5>
我希望通过它们正下方的<h6>
和<table>
进行提取。
我遇到的问题是:
a)我有几个<h5>
标签
b)<h6>
和<table>
不是<h5>
的孩子/兄弟姐妹。所以例如h5 > table
将不起作用。
所以我最想得到的是: 从这个网站: http://tcat.nextinsight.com/routes.php?mrnid=453
13号线周一至周五,<h6>
入站和表格,以及
13号航线周一至周五,<h6>
出站和表格。
一旦我拥有整个表格,我就可以使用此示例How to get a table from an html page using JAVA来处理表格
示例结构:(也可以在给定的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>
答案 0 :(得分:1)
选择器:
h5:contains(Route 13 Monday - Friday) + table
用过:
Elements tables = doc.select("h5:contains(Route 13 Monday - Friday) + table");
将为您提供前面有<h5>
内容"Route 13 Monday - Friday"
的每个表格。
使用您提供的网址检查工作代码:
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#");
}
}