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 выполнять свою работу (создание динамических элементов и т. д.)

Другие вопросы по тегам