如何从表中提取Jsoup的文本
也许有人可以帮助我使用jsoup从HTML中提取信息?如何从表中提取Jsoup的文本
需要的信息是23.90
<tr>
<td class="leftcell" valign="top">
<div onclick=
"ShowHideTravelDetails('bookingPrice_TaxesToggleBox',
'bookingPrice_TaxesToggleIcon', '/Images');" class="productheader">...</div>
</td>
<td class="rightcell emphasize" align="right"
valign="bottom">$23.90</td></tr>
我可以看到它在HTML文档几个地方。 我试过使用
Elements taxes = doc.select("td.rightcell.emphasize");
但它不工作。
还试图提取信息从表:
Elements table = doc.select("table[class=selectiontable]");
Elements rows = table.get(0).select("td[class^=rightcell emphasize]");
for (Element row : rows) {
Elements tds = row.select("td");
System.out.println(tds.get(13));
尝试这样 我假设你有一个这样的代码。你需要做嵌套级迭代才能得到结果。
public class Test {
public static void main(String[] args) {
String html ="<table class=\"selectiontable\">\n" +
"<tr>\n" +
" <td class=\"leftcell\" valign=\"top\">\n" +
" <div onclick=\n" +
" \"ShowHideTravelDetails('bookingPrice_TaxesToggleBox', \n" +
"'bookingPrice_TaxesToggleIcon', '/Images');\" class=\"productheader\">...</div>\n" +
"</td>\n" +
"<td class=\"rightcell emphasize\" align=\"right\" \n" +
"valign=\"bottom\">$23.90</td></tr>\n" +
"</table>";
Document document = Jsoup.parse(html);
Elements elements = document.select(".selectiontable");
for (Element element :elements){
for (Element row : element.select("tr")) {
Elements tds = row.select("td");
if (tds.size() > 1) {
System.out.println(tds.get(1).text());
}
}
}
}
}
输出:
$23.90
谢谢!但现在我有问题,我试图通过Document document = Jsoup.parse(doc.toString())解析整个html文档;它并没有创立任何东西。即没有输出23.90。可能是因为这个数字出现在html文件的少数地方? – cinnamon
@brigitte没有完整的HTML我不能解决你的问题。只是分享完整的HTML或至少从'table'标签。我将整理出来。 – soorapadman
确定让我点击'98.80'你想得到结果? – soorapadman
请添加代码没有屏幕截图 – soorapadman
第一代码片段对我来说很好。在第二个中,你检索'td's并将它们称为'rows',然后尝试检索一个子'td';我想你想检索'tr's代替(但是类选择器不再有意义) – Aaron