come ottenere il codice javascript con la sorgente effettiva con Html Agility Pack

c# html-agility-pack javascript parsing xpath

Domanda

Sto ottenendo la fonte di un sito web usando il pacchetto Html Agility che è diverso da quello del codice quando ispeziono con firebug.ho cercato molte cose ma non riesco ancora a capire cosa dovrei fare.La sorgente è diversa dal codice quando ispeziono per favore io come ottenere codice javascript con quell'Html. Anche quando disabilito javascript nel mio browser non riesco ancora a ottenere il codice Javascript lungo la fonte. sto usando

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

per ottenere la fonte dimmi se avrei bisogno di un metodo di richiesta e risposta per ottenere anche il codice JS.

Risposta accettata

Per espandere la risposta @alecxe , è possibile utilizzare Selenium * per caricare la pagina di destinazione come farebbe un browser reale e quindi passare il risultato a HtmlAgilityPack per un'ulteriore elaborazione:

using OpenQA.Selenium;

.....

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

in alternativa, puoi semplicemente eseguire la query (selettore XPath o CSS) utilizzando Selenium direttamente, ad esempio:

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

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

*) È necessario scaricare prima Selenium e il driver, ad esempio PhantomJS, Firefox, ecc. Selenium può essere installato facilmente nel progetto da NuGet .


Risposta popolare

Per questo è necessario un vero browser. Prendi in considerazione l'automazione di un browser (che può essere senza testa - vedi PhantomJS ) con l'aiuto del selenium .

Guarda anche:



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché