HTMLAgilityPack ottiene il valore AJAX

ajax asp.net-ajax html-agility-pack

Domanda

Sto cercando di ottenere il valore di un timer utilizzando HtmlAgilityPack, tuttavia quando ottengo il innerText dall'ID elemento restituito -: -: -

C'è un modo per ottenere il valore temporale dal momento che utilizza AJAX?

Risposta accettata

Il fatto è che quando si carica HttpAgilityPack.HtmlDocument (dal Web, ovviamente), si effettua una richiesta web HTTP al sito Web e ciò che si riceve è testo normale. Nessun file AJAX / JavaScript o immagini caricati. Quando lo vedi in un browser, non te ne rendi conto, perché è un browser;). Dopo aver ricevuto la risposta, inizia a caricare immagini, animazioni ed eseguendo il codice javascript, ma HtmlAgilityPack utilizza HttpWebRequest per ottenere il codice sorgente e non gestisce alcun codice javascript.

Ti suggerisco di scaricare uno strumento davvero geniale per ispezionare il traffico HTTP nella tua rete: Fiddler2 . Ti consentirà di impostare i punti di interruzione e di vedere esattamente come viene restituita la risposta, e vedrai che queste cose sono realmente gestite dal browser stesso.

Non so davvero quale sia lo scopo di ottenere il valore temporale di un timer in AJAX, ma penso che potresti usare WaTiN per caricare il sorgente usando Internet Explorer (e nasconderlo, perché altrimenti, una finestra di IE apparirà su lo schermo che carica la pagina), e nel momento in cui è necessario ottenere il valore del timer, ottenere l'origine da WaTiN e caricare un HtmlDocument utilizzando LoadHtml(string html) .




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é