Comment puis-je obtenir du code HTML généré via AJAX avec HTML Agility Pack?

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

Question

J'essaie d'analyser la page Web. une partie de cette page générée via AJAX, WebClient.DownloadString Je peux obtenir tout le code HTML sauf le code qui est généré via AJAX? pouvez-vous m'aider s'il vous plaît?

Mon code est:

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

J'ai besoin d'une liste de postes vacants ...

Réponse acceptée

Il est possible d’obtenir le contenu généré via AJAX, mais sa tâche n’est pas simple . Vous n’obtenez que la source de la page (la même que vous pouvez voir lorsque vous cliquez avec le bouton droit de la souris et que vous dites afficher la source de la page)

Pour obtenir le contenu ajax, vous devez noter l'URL utilisée par l'appel AJAX, puis passer un autre appel à cette URL pour obtenir le contenu. You can get this if you inspect the Network Tab of the developer window in any browser ou même en consultant le code javascript qu'il contient.

Inconvénients: Cela signifie également que vous obtiendrez simplement la réponse de l'appel AJAX, mais que se passera-t-il si le javascript manipule cette réponse (par exemple, créer une table à partir d'une réponse json)? Vous devrez peut-être le faire manuellement de votre côté.

Cela signifie donc que vous finirez par coder la même logique que dans le javascript pour obtenir le résultat HTML. Et cela semble être très pénible et entraîner trop d'erreurs.

Avantage: si tout ce qui vous intéresse concerne uniquement les données (telles que celles de la base de données du site Web) dans le code HTML et non le code HTML exact, cette approche fonctionnera pour vous.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi