C# Потяните веб-страницу с HTTPWebRequest и выполните JavaScript с сайта
Есть ли способ получить веб-страницу с HTTPWebRequest, а затем выполнить все javascriptcode, который был на странице вместе с вызовами ajax и сохранить результат в строку?
Я хочу проанализировать веб-сайт, на котором некоторые изображения генерируются с помощью кода js, а изображения не отображаются на веб-странице до запуска сценария js.
Теперь я искал в Интернете решение этой проблемы, но все, что я нашел, было ответы, что это невозможно, используйте взамен веб-браузер, который не подходит для меня.
Привет
3 ответа
Вы можете сделать это с C++ http системой, которая дает вам большой контроль над полученными данными, но я думаю, что это не совсем ответ, так что...
Почему бы не попробовать поместить webkit в ваше приложение и убрать события из него. Он имеет несколько событий, которые могут уведомить вас, когда загрузка начнется и закончится.
Я провел небольшое исследование только потому, что подумал, что это интересно. Я нашел что-то под названием Phantom.js, которое выглядит так, как будто оно делает то, что вам нужно. Проверьте это: http://phantomjs.org/
Это действительно невозможно, как я выяснил, пытаясь удовлетворить столь востребованный спрос. Javascript будет выполнен, но вызовы Ajax не будут выполняться.
Решение, которое я решил, заключалось в том, чтобы получить все данные, которые вызовы Ajax будут иметь синхронно, через файл code-behind (код C#), и назначить переменные code-behind для переменных Javascript, используя теги script, и позволить Javascript выполнять свою работу (создание динамических элементов и т. д.)