多级抓取HTMLAgilityPack

时间:2014-02-17 16:14:58

标签: asp.net c#-4.0 html-agility-pack

我正在尝试抓取以下格式的一些数据:

<div class="ac_acdetail">
<div id="ac_makemodel">
<a href='/aircraft-for-sale/turbine/jets/Bombardier-Challenger/300-34856/' title='Bombardier Challenger 300' class=''>Bombardier Challenger 300</a>
</div>
<div id="ac_price">FOR SALE</div>
<div class="ac_keydetail">
<div class="title">PRICE:</div>
<div class="item">15,950,000 <font size=-2>USD</font></div>
<div class="clear"></div>
</div>
<div class="ac_keydetail">
<div class="title">YEAR:</div>
<div class="item">2009</div>
<div class="clear"></div>
</div>
<div class="ac_keydetail">
<div class="title">S/N:</div>
<div class="item">20266</div>
<div class="clear"></div>
</div>
<div class="ac_keydetail">
<div class="title">TTAF:</div>
<div class="item">1150</div>
<div class="clear"></div>
</div>
<div class="ac_keydetail">
<div class="title">LOCATION:</div>
<div class="item">USA</div>
<div class="clear"></div>
</div>
</div>

我需要使用'item'类来获取每个div中的文本。是什么让这个问题 - 至少对我来说 - 是以知道顺序获取每个'项目',以便我可以将它们存储在数据库中相应的列中。

是否可以说抓住所有'item'类,然后根据它们的顺序单独调用它们?如果是这样的话?

或者是否有必要循环结果并在每次迭代时选择它们?

此外,在与价格相关的'item'div中,是否可以将'USD'文本作为另一个变量提取?

关于最佳方式的任何指示都非常感激。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用索引选择第n个节点。此xpath选择第四个节点中的第三个节点:

//div[4]//div[3]

或者您可以选择特定文字:

//div//div[text()='USA']