2013-03-10 146 views
2

我試圖讓一個應用程序在您輸入網址(http://www.explosm.net/comics/3104/),它會自動保存一個字符串與它發現的第一個鏈接給出xpath(//*[@id="maincontent"]/div[2]/div[2]/div[1]/img),這是一個圖片我想下載。如何使用xpath提取鏈接

我真的不知道該從哪裏開始。我已經嘗試了HtmlAgilityPackWebBrowser課程,但我找不到任何東西來幫助我理解要做什麼以及如何去做。

任何幫助將不勝感激。

+1

htmlagilitypack應該正常工作。 htmlagilitypack有什麼問題? – David 2013-03-10 03:14:20

回答

2

這很容易與HTMLAgilityPack

var w = new HtmlWeb(); 
var doc = w.Load("http://www.explosm.net/comics/3104/"); 

var imgNode = doc.DocumentNode.SelectSingleNode("//*[@id=\"maincontent\"]/div[2]/div[2]/div[1]/img"); 

var src = imgNode.GetAttributeValue("src", ""); 

變量src的值將http://www.explosm.net/db/files/Comics/Matt/Dont-be-a-dickhead.png

所有您需要做的就是下載圖片:

var request = (HttpWebRequest)WebRequest.Create(src); 
var response = request.GetResponse(); 

var stream = response.GetResponseStream(); 

//Here you have an Image object 
Image img = Image.FromStream(stream); 

//And you can save it or do whatever you want 
img.Save(@"C:\file.png"); 
+0

哇。這看起來非常簡單。非常感謝你。 :) 但是,有關HTMLAgilityPack的快速問題。我下載了1.4.6版本,並且在那裏丟失了不同的子文件夾。我應該使用哪一個? (net20,net40,net40-client,net45,sl3等) – cr33p3r1n1134 2013-03-10 03:27:20

+0

取決於您在項目中使用的框架版本。 – 2013-03-10 03:50:01

+0

哦,好的。我使用的是第4版,您給我的代碼是完美的。非常感謝您的幫助。 :) – cr33p3r1n1134 2013-03-10 03:53:23