今天在遇到数据抓取的时候,
<select name="vessel" id="vessel" class="list">
<option value="00">All</option>
<option value="4618">ABILITY</option>
<option value="1333">ACX CHERRY</option>
<option value="1332">ACX COSMOS</option>
<option value="4275">ACX CRYSTAL</option>
<option value="4277">ACX DIAMOND</option>
<option value="1322">ACX HIBISCUS</option>
<option value="782">ACX LILY</option>
<option value="786">ACX MARGUERITE</option>
<option value="4182">ACX PEARL</option>
<option value="4019">ACX SATSUMA</option>
<option value="3550">ADELINA D</option>
<option value="4619">ADMIRATION</option>
<option value="3866">AEGEAN EXPRESS</option>
<option value="1704">AGLAIA</option>
<option value="4388">AGNES RICKMERS</option>
<option value="4105">AKARI</option>
</select>
发现select 总是出现错误,最开始也没找到 HtmlAgilityPack 中抓取select的方法,使用了最笨的方法用index和Substring 进行一步一步取的数据:可是数据还是会出现问题:
在多方面查找资料才找到
public Dictionary<string, string> getvessel()
{
Dictionary<string, string> dicV = new Dictionary<string, string>();
string xmlpath = @"//select[@id='vessel']/option";
HtmlNodeCollection nodeCollection =AgilityPackDoc.DocumentNode.SelectNodes(xmlpath);
if (nodeCollection == null)
return dicV;
foreach (var item in nodeCollection)
{
var key = item.Attributes["value"].Value;
var value = item.NextSibling.InnerText;
dicV.Add(key, value);
}
return dicV;
}