[英]HREF + TEXT with Jsoup
我有以下HTML页面:
</div><div id="page_content_list01" class="grid_12">
<h2><strong class="floatleft">TEXT1</strong></h2><br>
<table>
<tbody>
<tr>
<th class="no_width">
<p class="floatleft">Attachments:</p>
</th>
<td class="link_azure">
<a target="_blank" href="http://www.example.com">TEXT2</a><br/>
</td>
</tr>
</tbody>
</table><h2><strong class="floatleft">TEXT3</strong></h2><br>
<table>
<tbody>
<tr>
<th class="no_width">
<p class="floatleft">Atachments:</p>
</th>
<td class="link_azure">
<a target="_blank" href="http://www.example2.com">TEXT4</a><br/>
</td>
</tr>
</tbody>
</table><h2><strong class="floatleft">TEXT5</strong></h2><br>
<table>
<tbody>
<tr>
其实我在做:
Elements rows = document.select("div#page_content_list01");
现在我选择“文本”并链接。 我想做可点击的链接,所以我在用:
for (Element eleme : rows) {
Elements elements = eleme.select("a");
for (Element elem : elementi) {
String url = elem.attr("href");
String title = elem.text();
}
}
我得到:
url = "http://www.example.com";
title = "TEXT2";
没关系,但是这样我就看不到“ TEXT1”和“ TEXT3”。 有人能帮助我吗?
我认为您需要研究elecors。 首先,您的主要选择器
Elements rows = document.select("div#page_content_list01");
由于您实际上选择了div而不是表或表行,因此将仅返回一个ONE元素列表。 我将改为获取所有相关信息:
Elements tables = document.select("div#page_content_list01>table");
for (Element table : tables){
Element h2 = table.previousElementSibling();
String titleStr = h2.text();
Element a = table.select("a").first();
String linkStr = a.attr("href");
}
请注意, h2
元素中的Text与表处于同一级别,而不位于公共div内。 这就是为什么我使用以前的同级符号。 另请注意,我是在脑海中写下这句话的,未经测试。 您应该知道。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.