任务
我应该创建一个从 Amazon.com 网页中提取项目名称的应用程序。
行动
我想我会使用 Html Agility Pack 来完成这项工作,我想我已经有了一个解决方案,但是有一个错误一直存在。
结果
假设我试图从 n 个不同的站点中提取 html 源代码,该应用程序始终使用站点 1 - n 的第一个站点的源代码,我不知道为什么。当且仅当我重新启动计算机时,我才能从不同的网站提取 html。
代码
private void extractHTML()
{
//retreive URL
string address = txtURL.Text;
string itemId = "result_0";
//create document
HtmlWeb webGet = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument document = webGet.Load(address);
//look for name of result
HtmlNode node = document.GetElementbyId(itemId);
if(node != null)
{
IEnumerable<HtmlNode> allH3 = node.Descendants("h3");
foreach (HtmlNode h3 in allH3)
{
if (h3.ChildNodes[1].InnerHtml == null)
{
continue;
}
else
{
lblId.Text = itemId;
//dig down to lowest subnode to get correct InnerHtml
HtmlNode subNode = h3.ChildNodes[1];
if (subNode.ChildNodes.Count > 0)
{
lblName.Text = subNode.ChildNodes[subNode.ChildNodes.Count - 1].InnerHtml;
break;
}
else
{
lblName.Text = h3.ChildNodes[1].InnerHtml;
break;
}
}
}
}
}
非常感谢您的帮助!提前致谢。