在jsoup中提取td标签内的href值
Posted
技术标签:
【中文标题】在jsoup中提取td标签内的href值【英文标题】:Extract href values inside td tags in jsoup 【发布时间】:2012-06-18 05:50:51 【问题描述】:我有
<table class="table" >
<tr>
<td><a href="url">text1</a></td>
<td>text2</td>
</tr>
<tr>
<td><a href="url2">text</a></td>
<td>text</td>
</tr>
我想提取所有行的 url 和 text 我用
Document doc = Jsoup.connect(url).get();
for (Element table : doc.select("table.table"))
for (Element row : table.select("tr"))
Elements tds = row.select("td");
String text1=tds.get(0).text();
String url= row.attr("href");
System.out.println(text1+ "," + url);
我得到了 text1 值,但 url 为空。
如何从 td 标签中获取 url?
【问题讨论】:
【参考方案1】:你(也许其他人)可以试试这个:
Document doc = Jsoup.connect(url).get();
for (Element table : doc.select("table.table"))
for (Element row : table.select("tr"))
for (Element tds : row.select("td"))
Elements links = tds.select("a[href]");
for (Element link : links)
System.out.println("link : " + link.attr("href"));
System.out.println("text : " + link.text());
【讨论】:
【参考方案2】:你的行变量不是a
标签,所以上面没有href
属性。
试试这个:
Element table = doc.select("table.table");
Elements links = table.getElementsByTag("a");
for (Element link: links)
String url = link.attr("href");
String text = link.text();
System.out.println(text + ", " + url);
这几乎是从JSoup documentation中提取的
【讨论】:
以上是关于在jsoup中提取td标签内的href值的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有标签的情况下选择 HTML 标签中的文本(JSoup)