2011-09-08 85 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"); 

希望這有助於。