【问题标题】:Specifying what data to scrape - Jsoup + Android Studio指定要抓取的数据 - Jsoup + Android Studio
【发布时间】:2016-04-19 02:19:17
【问题描述】:

我正在使用 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>

当它显示在我的手机上时,&lt;td&gt; 正在显示,我不希望它们显示。我不想从上面的 html 中刮掉任何 &lt;td&gt; 标签

<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>

我希望它显示的是“Mon”,然后是“9:00”,然后是“Sounds”,然后是“P0000”,然后是“P.Man。”

这是我的自动取款机代码。任何人任何线索?阅读文档。

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

【问题讨论】:

标签: java android html android-studio jsoup


【解决方案1】:

试试这个 CSS 选择器:

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

DEMO

示例代码

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 找到所有表,除了最后一个,包含所需的文本。

【讨论】:

  • thanks man ,感谢提供的示例代码,它提供了很大的帮助,知道如何打印“mon”和“9:00”吗?
  • @DylanB 你想在哪里打印?
  • 我希望“Mon”高于“9:00”,即高于“Sounds P0000 P.Man”
猜你喜欢
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-13
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多