如何使用xpath提取链接

时间:2013-03-10 03:06:03

标签: c# xpath

我正在尝试创建一个您输入网址(http://www.explosm.net/comics/3104/)的应用程序,它会自动保存一个字符串,其中包含给定xpath(//*[@id="maincontent"]/div[2]/div[2]/div[1]/img)的第一个链接,这是一个图片我想下载。

老实说,我不知道从哪里开始。我已经尝试了HtmlAgilityPackWebBrowser课程,但我找不到任何可以帮助我了解该做什么以及如何做的事情。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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");