Le site utilise Javascript et je ne parviens pas à y accéder avec htmlagilitypack

c# html-agility-pack web-scraping windows-phone-8

Question

J'essaie d'utiliser une appli Silverlight pour Windows Phone 8.0 pour extraire des données de PlayStation .

Cependant, je crois que le site utilise Javascript et que je ne parviens pas à y accéder avec htmlagilitypack.

Mon code jusqu'ici est:

protected async override void OnNavigatedTo(NavigationEventArgs e)
{
   base.OnNavigatedTo(e);
   string htmlPageLive = "";

   using (var client = new HttpClient())
   {
      htmlPageLive = await client.GetStringAsync("https://store.sonyentertainmentnetwork.com/#!/en-us/free-games/cid=STORE-MSF77008-PSPLUSFREEGAMES?smcid=pdc:us-en:ps-plus:sub-nav-new-arrivals");
   }

   HtmlDocument htmlDocumentLive = new HtmlDocument();
   htmlDocumentLive.LoadHtml(htmlPageLive);

   foreach (var div in htmlDocumentLive.DocumentNode.SelectNodes("//ul[@class= 'pane pane0']"))
   {
      PSPGames newGame = new PSPGames();
      newGame.Title = div.SelectSingleNode(".//h3[@class= 'cellTitle']").InnerText.Trim();
   }
   lstPSPGame.ItemsSource = PSPgame;
   customIndeterminateProgressBar.Visibility = Visibility.Collapsed;
}

Cependant, l'application se bloque sur la ligne 'foreach' lorsqu'elle tente de rechercher le nœud 'volet Pane0'.

Est-il possible de récupérer les données? Si oui, que devrais-je faire?

Merci d'avance.

Réponse populaire

Il n'est pas possible d'extraire les données avec HtmlAgilityPack car elles sont chargées de manière asynchrone. Ce que vous obtenez lorsque vous interrogez la page, c'est son squelette.

Ce que vous pouvez essayer, c'est regarder les appels réseau et voir si un service Web public est appelé. Recherchez les données json ou xml




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