получить источник iframe, используя HtmlAgilityPack - PullRequest
3 голосов
/ 02 февраля 2012

Я пытаюсь получить все исходные URL-адреса iFrame в HTML-документе. Я пытался использовать HtmlAgilityPack с xpath - но у меня, похоже, нет списка источников.

HtmlAgilityPack.HtmlDocument myHtml= new HtmlDocument();
myHtml.LoadHtml(htmlString);

foreach (HtmlNode framesrc) in myHtml.DocumentNode.SelectNodes("//iframe/src"))
{
    srcCollection.add(framesrc);
}

Мой xpath неверен?

Ответы [ 2 ]

3 голосов
/ 02 февраля 2012

ifarme имеет атрибут @src. Таким образом, ваш XPath должен быть //iframe/@src. Он выберет @src из всех iframe.

1 голос
/ 23 ноября 2012

На самом деле этот 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);
}
...