2011-09-08 88 views
3

我有使用图像作为链接的页面,我试图获取href链接以及图像src。问题是我现在收集的href的罚款,但它只是得到第一个IMG SRC,只是重复。Html Agility Pack链接和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; 
} 

有人能告诉我什么是错误的或另一种方式吗?谢谢。

+0

您发布的代码对我来说看起来很好......您在哪里存储提取的图像链接和网址?在列表中?该部分代码缺失。这里你只是在循环范围内声明了两个字符串,因此在之后丢弃它们。我想这只是为了简化代码,但错误可能在于你遗漏在这里的那部分代码... –

+0

现在,让一切正常工作,我只是将它打印在来自foreach内部的文本框中:output.Text + = imageLink +“ - ”+ imageUrl +“\ r \ n”; – John

+0

HTML数据是什么样的?文本框的内容是什么样的?代码看起来很好,但在我们知道你回来之前,我们无法理解你的情况。 –

回答

2

尝试改变

HtmlNode imageNode = linkNode.SelectSingleNode("//img"); 

HtmlNode imageNode = linkNode.SelectSingleNode(".//img"); 

希望这有助于。