как я могу получить html, который создается через AJAX с помощью HTML Agility Pack?

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

Вопрос

Я пытаюсь разобрать веб-страницу. часть этой страницы, созданная через AJAX, WebClient.DownloadString Я могу получить весь HTML, кроме кода, который создается через AJAX? вы можете мне помочь?

Мой код:

var client = new WebClient();
client .Headers.Add(HttpRequestHeader.UserAgent, "UserAgent,Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1");
client.Headers.Add(HttpRequestHeader.Cookie, "USER_PW=xxxxxxxxx; PHPSESSID=xxxxxxxxxxxxxxxxxx");
var html = client.DownloadString("xxxxxxxxxx");

Мне нужен список вакансий ...

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

его можно получить контент, который создается через AJAX. Но его задача не прямолинейна. Все, что вы получаете, это источник страницы (тот же, который вы можете видеть, когда вы щелкаете правой кнопкой мыши и указываете источник страницы просмотра)

Чтобы получить контент ajax, вы должны указать URL-адрес, который вызвал вызов AJAX, а затем сделать другой вызов этого URL-адреса для получения контента. You can get this if you inspect the Network Tab of the developer window in any browser или даже просмотрите код javascript внутри.

Недостатки: это также означает, что вы просто получите ответ на вызов AJAX, но что, если javascript будет манипулировать этим ответом (например, создать таблицу из json-ответа). Это вам, возможно, придется вручную сделать это на вашем конце.

Таким образом, это также означает, что вы закончите кодирование той же логики, что и в javascript, чтобы получить результат HTML. И это кажется большим количеством боли и слишком большим количеством дыр для ошибки.

Преимущество. Если все, что вас интересует, это только данные (например, данные из базы данных веб-сайта) в HTML, а не сам точный HTML. Тогда этот подход будет работать для вас.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow