come posso ottenere html generato tramite AJAX con HTML Agility Pack?

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

Domanda

Sto provando la pagina Web di analisi. parte di quella pagina generata tramite AJAX, WebClient.DownloadString Posso ottenere tutto l'HTML tranne quel codice che viene generato tramite AJAX? qualcuno mi può aiutare per favore?

Il mio codice è:

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");

Ho bisogno di un elenco di posti vacanti ...

Risposta accettata

è possibile ottenere il contenuto generato tramite AJAX, ma il suo compito non è immediato , tutto quello che ottieni è la fonte della pagina (la stessa che puoi vedere quando fai clic con il tasto destro del mouse e chiedi vista origine della pagina)

Per ottenere il contenuto Ajax, è necessario annotare l'url della chiamata AJAX e quindi effettuare un'altra chiamata a questo URL per ottenere il contenuto. You can get this if you inspect the Network Tab of the developer window in any browser o anche guardando il codice javascript all'interno.

Svantaggi: questo significa anche che riceverai la risposta della chiamata AJAX, ma cosa succede se il javascript sta manipolando questa risposta (come la creazione di una tabella di risposta JSON). Questo potrebbe essere necessario farlo manualmente da capo.

Quindi significa anche che finirai per codificare la stessa logica del javascript per ottenere il risultato HTML, e questo sembra un sacco di dolore e troppi buchi per l'errore.

Vantaggio: se tutto ciò che ti interessa sono solo i dati (come i dati del database del sito web) nell'HTML e non l'esatto codice HTML stesso, allora questo approccio funzionerà per te.



Related

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é