【问题标题】:Multi level scraping HTMLAgilityPack多级抓取 HTMLAgilityPack
【发布时间】:2014-02-17 16:14:57
【问题描述】:

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

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

我需要使用“项目”类获取每个 div 中的文本。是什么让这成为一个问题 - 至少对我而言 - 是按其已知顺序获取每个“项目”,以便我可以将它们存储在数据库中相应的列中。

是否可以说抓取所有“项目”类,然后根据它们的顺序单独调用它们?如果有怎么办?

或者是否有必要循环遍历结果并在每次迭代中挑选出来?

此外,在与价格相关的“项目”div 中,是否可以将“美元”文本提取为另一个变量?

任何有关解决此问题的最佳方法的建议都将不胜感激。

提前致谢。

【问题讨论】:

  • 如果它适合您,您可以按索引选择节点,例如选择第四个 div。
  • 我该怎么做?谢谢。

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


【解决方案1】:

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

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

或者你可以用特殊的文字来选择:

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

【讨论】:

  • 如果我知道文字,我就不需要刮了。 ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 2017-01-20
  • 2012-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多