如何使用HTML Agility Pack檢索網站上的所有圖像?

c# html-agility-pack parsing

我剛剛下載了HTMLAgilityPack,文檔中沒有任何示例。

我正在尋找一種從網站下載所有圖像的方法。地址字符串,而不是物理圖像。

<img src="blabalbalbal.jpeg" />

我需要拉出每個img標籤的來源。我只是想了解圖書館以及它能提供什麼。每個人都說這是這項工作的最佳工具。

編輯

<img src="blabalbalbal.jpeg" />

一般承認的答案

您可以使用LINQ執行此操作,如下所示:

var document = new HtmlWeb().Load(url);
var urls = document.DocumentNode.Descendants("img")
                                .Select(e => e.GetAttributeValue("src", null))
                                .Where(s => !String.IsNullOrEmpty(s));

編輯 :此代碼現在實際上工作;我忘了寫document.DocumentNode


熱門答案

基於他們的一個例子,但是修改了XPath:

 HtmlDocument doc = new HtmlDocument();
 List<string> image_links = new List<string>();
 doc.Load("file.htm");
 foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//img"))
 {
    image_links.Add( link.GetAttributeValue("src", "") );
 }

我不知道這個擴展,所以我不確定如何將數組寫出到其他地方,但這至少可以為您提供數據。 (另外,我沒有正確定義數組,我很確定。抱歉)。

編輯

使用你的例子:

 HtmlDocument doc = new HtmlDocument();
 List<string> image_links = new List<string>();
 doc.Load("file.htm");
 foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//img"))
 {
    image_links.Add( link.GetAttributeValue("src", "") );
 }



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因