【发布时间】:2011-09-08 00:14:23
【问题描述】:
我有使用图像作为链接的页面,我正在尝试获取 href 链接以及图像 src。问题是我现在正在收集href的罚款,但它只是获取第一个img src并且只是重复。
HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = hw.Load(url);
HtmlNodeCollection linkNodes = doc.DocumentNode.SelectNodes("//a[@href]");
foreach (HtmlNode linkNode in linkNodes)
{
HtmlAttribute link = linkNode.Attributes["href"];
HtmlNode imageNode = linkNode.SelectSingleNode("//img");
HtmlAttribute src = imageNode.Attributes["src"];
string imageLink = link.Value;
string imageUrl = src.Value;
}
有人可以告诉我出了什么问题或另一种方法吗?谢谢。
【问题讨论】:
-
您发布的代码对我来说看起来不错...您将提取的图像链接和网址存储在哪里?在列表中?缺少那部分代码。在这里,您只是在循环范围内声明两个字符串,因此之后将它们丢弃。我想这只是为了简化代码,但错误可能在于您在这里遗漏的那部分代码......
-
目前为了让一切正常工作,我只是在 foreach 内部的文本框中打印它: output.Text += imageLink + " - " + imageUrl + "\r\n";
-
HTML 数据是什么样的?文本框的内容是什么样的?代码看起来不错,但在我们知道您返回的内容之前,我们可能无法理解您的情况。
标签: c# html html-agility-pack