как получить код javascript тоже с фактическим источником с Html Agility Pack

c# html-agility-pack javascript parsing xpath

Вопрос

Я получаю источник веб-сайта, используя Html Agility pack, который отличается от кода, когда я проверяю с помощью firebug.i, которые искали много вещей, но все еще не понимают, что я должен делать. Источник отличается от кода, когда я проверяю, пожалуйста, скажите мне как получить javascript код тоже с этим Html. Даже когда я отключу javascript в моем браузере, я все еще не могу получить код Javascript вместе с источником. я использую

string url="";
HtmlDocument doc = new HtmlDocument();
                WebClient client = new WebClient();
                html = client.DownloadString(url);
                doc.LoadHtml(html);

чтобы получить источник, скажите мне, нужен ли мне метод запроса и ответа для получения JS-кода.

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

Чтобы расширить ответ на @alecxe , вы можете использовать Selenium * для загрузки целевой страницы, как это сделал бы настоящий браузер, а затем передать результат в HtmlAgilityPack для дальнейшей обработки:

using OpenQA.Selenium;

.....

IWebDriver driver = new PhantomJS.PhantomJSDriver();
driver.Navigate().GoToUrl(url);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(driver.PageSource);

В качестве альтернативы вы можете просто запустить свой запрос (селектор XPath или CSS), используя Selenium напрямую, например:

var result = driver.FindElements(By.XPath("your query"));

//print HTML of the returned elements
foreach (var item in result)
{
    Console.WriteLine(item.GetAttribute("outerHTML"));
}

*) Необходимо сначала загрузить Selenium, а также драйвер, например PhantomJS, Firefox и т. Д. Selenium можно легко установить в ваш проект из NuGet .


Популярные ответы

Для этого вам понадобится настоящий браузер. Рассмотрим автоматизацию браузера (который может быть безголовым - см. PhantomJS ) с помощью selenium .

Смотрите также:



Related

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