需要查询 XPath,找到包含 7 个 <tr> 元素的所有 <td> 元素

问题描述 投票:0回答:1

您好,希望感谢您的帮助。

老实说,我对 XPath 的经验不是很丰富,我希望那里的专家能给我一个快速的答案。

我正在抓取网页以获取数据。我想要的数据的定义方面是它包含在具有 7 个

<tr>
元素的行
<td>
中。每个
<td>
元素都有我需要导入的数据之一。我正在 CodePlex 上使用 HTML Agility Pack 来获取数据,但我似乎不知道如何定义查询。

网页中包含这样的部分:

<table border="0" cellpadding="3" cellspacing="1" width="100%">
  <tr class="bgWhite" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
    <td class="dataHdrText02" valign="top" width="50" align="center"><nobr>SYMBOL</nobr></td>
    <td class="dataHdrText02" valign="top" align="center">PERIOD</td>
    <td class="dataHdrText02" valign="top" align="center" width="*">EVENT TITLE</td>
    <td class="dataHdrText02" valign="top" align="center">EPS ESTIMATE</td>
    <td class="dataHdrText02" valign="top" align="center">EPS ACTUAL</td>
    <td class="dataHdrText02" valign="top" align="center">PREV. YEAR ACTUAL</td>
    <td class="dataHdrText02" valign="top" align="center"><nobr>DATE/TIME (ET)</nobr></td>
  </tr>
  <tr class="bgWhite">
    <td align="center" width="50"><nobr>CSCO&#160;</nobr></td>
    <td align="center">Q4&#160;2011</td>
    <td align="left" width="*">Q4 2011 CISCO Systems Inc Earnings Release</td>
    <td align="center">$ 0.38&#160;</td>
    <td align="center">n/a&#160;</td>
    <td align="center">$ 0.43&#160;</td>
    <td align="center"><nobr>10-Aug-11</nobr></td>
  </tr>
  <tr class="bgWhite">
    <td align="center" width="50"><nobr>CSCO &#160;</nobr></td>
    <td align="center">Q3&#160;2011</td>
    <td align="left" width="*">Q3 2011 Cisco Systems Earnings Release</td>
    <td align="center">$ 0.37&#160;</td>
    <td align="center">$ 0.42&#160;</td>
    <td align="center">$ 0.42&#160;</td>
    <td align="center"><nobr>11-May-11 AMC</nobr></td>
  </tr>
  <tr class="bgWhite" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
     <td align="center" colspan="7"><img src="/format/cb/images/spacer.gif" width="1" height="4"></td>
  </tr>
</table>

我的目标是获取收益事件数据并将其放入数据库中进行分析。我最初的想法是获取具有 7 个

<tr>
元素的所有
<td>
元素,然后处理该数据。欢迎任何建议或替代建议。

web-scraping xpath html-agility-pack
1个回答
4
投票

这应该适合你。

//tr[count(td)=7]
© www.soinside.com 2019 - 2024. All rights reserved.