HTMLAgilityPack загружает содержимое AJAX для соскабливания

ajax asp.net c# html-agility-pack winforms

Вопрос

Я пытаюсь очистить веб-страницу, используя HTMLAgilityPack в проекте ac # webforms.

Все решения, которые я видел для этого, используют элемент управления WebBrowser. Однако из того, что я могу определить, это доступно только в проектах WinForms.

В настоящее время я звоню на нужную страницу через этот код:

var getHtmlWeb = new HtmlWeb();
var document = getHtmlWeb.Load(inputUri);
HtmlAgilityPack.HtmlNodeCollection nodes = document.DocumentNode.SelectNodes("//div[@class=\"nav\"]");

Примерный бит кода, который я видел, чтобы использовать элемент управления WebBrowser:

if (this.webBrowser1.Document.GetElementsByTagName("html")[0] != null)
_htmlAgilityPackDocument.LoadHtml(this.webBrowser1.Document.GetElementsByTagName("html")[0].OuterHtml);

Любые предложения / указатели относительно того, как захватить страницу после загрузки AJAX, будут оценены.

Принятый ответ

Похоже, что использование HTMLAgilityPack возможно только для очистки содержимого, загружаемого через сам html. Таким образом, все, что загружается через AJAX, не будет видно HTMLAgilityPack.

Возможно, самый простой вариант - где это возможно - использовать браузерный инструмент, такой как Firebug, для определения источника данных, загружаемых AJAX. Затем непосредственно манипулируйте исходными данными. Дополнительным преимуществом этого может быть способность очистить более крупный набор данных.



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему