HTMLAgilityPack получает значение AJAX

ajax asp.net-ajax html-agility-pack

Вопрос

Я пытаюсь получить значение таймера, используя HtmlAgilityPack, однако, когда я получаю innerText по идентификатору элемента, он возвращает -: -: -

Есть ли способ получить значение времени, поскольку он использует AJAX?

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

Дело в том, что когда вы загружаете HttpAgilityPack.HtmlDocument (из Интернета, конечно), он делает веб-запрос HTTP на веб-сайт, и то, что вы получаете, является простым текстом. Не загружается AJAX / JavaScript или изображения. Когда вы видите это в браузере, вы не понимаете об этом, потому что это браузер;). После получения ответа он начинает загружать изображения, анимации и выполнять javascript-код, но HtmlAgilityPack использует HttpWebRequest для получения источника, и он не управляет каким-либо кодом JavaScript.

Я предлагаю вам скачать действительно блестящий инструмент для проверки HTTP-трафика в вашей сети: Fiddler2 . Это позволит вам установить точки останова и посмотреть, как именно возвращается ответ, и вы увидите, что эти вещи действительно обрабатываются самим браузером.

Я действительно не знаю, в чем цель получить значение времени таймера в AJAX, но я думаю, вы могли бы использовать WaTiN для загрузки источника с помощью Internet Explorer (и избегайте его, потому что если нет, окно IE появится на экран загружает страницу), и в тот момент, когда вам нужно получить значение таймера, получите источник от WaTiN и загрузите HtmlDocument с помощью LoadHtml(string html) .



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