c# - 如何使用 xpath 提取链接

标签 c# xpath

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

老实说,我不知道从哪里开始。我尝试过 HtmlAgilityPackWebBrowser 类,但找不到任何内容可以帮助我理解要做什么以及如何做。

任何帮助将不胜感激。

最佳答案

使用 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");

关于c# - 如何使用 xpath 提取链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15318443/

相关文章:

xml - 无法使用 xpath == "//*[text()[contains(.,' "+ word + " ')]]"找到元素

xml - XPath 随机选择一个子节点

c# - 具有连接和计数的快速 linq 查询

c# - SHIFT + 滚动可在 ScrollViewer UWP 中水平滚动

c# - WPF 数据绑定(bind)属性丢失值

c# - Powershell 到 C# - Get-WMIObject

c# - 使用 Entity Framework 5 在 1 个事务中调用多个存储过程

java - 在spring bean中处理xml配置文档

Xpath文本包含困惑

xpath - Telegram 即时查看 API : Element <img> is not supported in <p>