【发布时间】:2015-11-15 21:41:51
【问题描述】:
我正在使用 C# HTMLAgilityPack 从中文网站中提取商品名称、价格和货币符号:https://meadjohnson.world.tmall.com/search.htm?search=y&orderType=defaultSort&scene=taobao_shop。以下是 html 外观的要点:
<div class="SaleItems">
<dl class="item ">
<dt class="photo"></dt>
<dd class="detail">
<a class="item-name">iPad</a>
<div class="price-area">
<span class="symbol">USD</span>
<span class="price">379</span>
</div>
</dd>
</dl>
<dl class="item ">
<dt class="photo"></dt>
<dd class="detail">
<a class="item-name">iPod</a>
<div class="price-area">
<span class="symbol">CAD</span>
<span class="price">139</span>
</div>
</dd>
</dl>
</div>
到目前为止,这就是我的程序的样子。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12
| SecurityProtocolType.Ssl3;
var htmlDocument = htmlWeb.Load(html);
var sItems = doc.DocumentNode.Descendants("SaleItems");
foreach (var item in sItems)
{
var data = new {
Currency = item["symbol"].InnerText,
Price = item["price"].InnerText,
};
}
这不起作用。我该如何解决我做错的事情?
【问题讨论】:
-
你现在所做的事情到底有什么不妥?
-
我收到错误“无法使用 [] 将索引应用于 'HtmlAgilityPack.HtmlNode' 类型的表达式”
标签: linq c#-4.0 html-agility-pack data-extraction