Il sito utilizza Javascript e ho difficoltà ad accedervi usando htmlagilitypack

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

Domanda

Sto cercando di utilizzare un'applicazione Silverlight di Windows Phone 8.0 per analizzare i dati da PlayStation .

Tuttavia, credo che il sito utilizzi Javascript e ho difficoltà ad accedervi usando htmlagilitypack.

Il mio codice finora è:

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;
}

Tuttavia, l'app si arresta in modo anomalo sulla riga 'foreach' quando tenta di cercare il nodo 'riquadro pane0'.

È possibile raschiare i dati? Se sì, cosa dovrei fare?

Grazie in anticipo.

Risposta popolare

Non è possibile analizzare i dati con HtmlAgilityPack poiché è caricato in modo asincrono. Quello che ottieni quando si interroga la pagina è il suo scheletro.

Quello che potresti provare è guardare le chiamate di rete e vedere se viene chiamato un webservice pubblico. Cerca dati json o xml



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é