我有
<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>
我想提取所有行的网址和文字 我用
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为null。
如何从td标签中获取网址?
答案 0 :(得分:10)
您的行变量不是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
中提取的答案 1 :(得分:0)
你(也许还有其他人)可以试试这个:
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());
}
}
}
}