指定要抓取的数据-Jsoup+AndroidStudio



我使用JSoup抓取数据,并使用android studio在手机上显示。我有一些代码可以抓取所有的<td>标签,但我并不是想把它们全部抓取,只是按照特定的顺序抓取某些标签。

  </tr>
</table>
</td>
</tr><tr>
<td>
<table cellspacing='0' border='0' width='100%' >
<col align='left' /><col align='center' /><col align='right' />
  <tr>
    <td></td><td></td><td></td>

此外,当它显示在我的手机上时,<td>正在显示,我不希望他们这样做。我不想从上方的html中刮取任何<td>标签

<td   bgcolor='#C0C0C0' colspan='1'><font color='#FFFFFF'>9:00</font></td>
    <td   bgcolor='#C0C0C0' colspan='1'><font color='#FFFFFF'>9:15</font></td>
    <td   bgcolor='#C0C0C0' colspan='1'><font color='#FFFFFF'>9:30</font></td>
    <td   bgcolor='#C0C0C0' colspan='1'><font color='#FFFFFF'>9:45</font></td>

上面和下面是我想要抓取的HTML。

<tr >
    <td style="border-bottom:3px solid #000000;" rowspan='1' bgcolor='#C0C0C0'><font color='#FFFFFF'>Mon</font></td>
    <td style="border-bottom:3px solid #000000;"  colspan='12' rowspan='1' >
<table  cellspacing='0' border='0' width='100%'>
  <col align='left' />
<tr>
  <td align='left'><font color='#FF0000'>Sounds</font></td>
</tr>
</table>
<table  cellspacing='0' border='0' width='100%'>
  <col align='left' />
  <col align='right' />
<tr>
  <td align='left'><font color='#000000'>P0000</font></td>
  <td align='right'><font color='#008000'>P.Man</font></td>
</tr>
</table>

我想让它显示的是"周一",然后是"9:00",再是"声音",再到"P0000",最后是"p.Man."

这是我atm的代码。有线索吗?阅读文档。

 Elements tableElements = doc.select("td");
                for (Element td : tableElements) {
                    buffer.append("TT [" + td + "] rn");
                    Log.d("JSwA", "TT [" + td + "]");
                }
            }

试试这个CSS选择器:

#post-15 > div > table:nth-child(6) > tbody > tr:nth-child(2) > td:nth-child(2) > table:not(:last-of-type)

演示

示例代码

String text = doc.select("#post-15 > div > table:nth-child(6) > tbody > tr:nth-child(2) > td:nth-child(2) > table:not(:last-of-type)").text();
// text should contain "Sounds P0000 P.Man"

上面的代码行告诉Jsoup找到包含所需文本的所有表,除了最后一个表。

最新更新