使用HtmlAgilityPack获取iframe源

本文关键字:iframe 获取 HtmlAgilityPack 使用 | 更新日期: 2023-09-27 18:22:08

我正在尝试获取html文档上的所有iFrame源URL。我尝试将HtmlAgilityPack与xpath一起使用,但似乎没有得到源代码列表。

HtmlAgilityPack.HtmlDocument myHtml= new HtmlDocument();
myHtml.LoadHtml(htmlString);
foreach (HtmlNode framesrc) in myHtml.DocumentNode.SelectNodes("//iframe/src"))
{
    srcCollection.add(framesrc);
}

我的xpath错了吗?

使用HtmlAgilityPack获取iframe源

ifarme具有属性@src。所以您的XPath应该是//iframe/@src。它将选择所有iframe中的@src

实际上,这个开源html解析器使用的查询看起来像下面的查询:

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//iframe[@src]");

foreach(var node in nodes){
    HtmlAttribute attr = node.Attributes["src"];
    Console.WriteLine(attr.Value);
}