El sitio usa Javascript y tengo problemas para acceder a él usando htmlagilitypack

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

Pregunta

Estoy intentando usar una aplicación Silverlight para Windows Phone 8.0 para eliminar datos de PlayStation .

Sin embargo, creo que el sitio utiliza Javascript y tengo problemas para acceder a él utilizando htmlagilitypack.

Mi código hasta ahora es:

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

Sin embargo, la aplicación se bloquea en la línea 'foreach' cuando intenta buscar el 'panel pane0' del nodo.

¿Es posible raspar los datos? Si es así, ¿qué tendría que hacer?

Gracias por adelantado.

Respuesta popular

No es posible raspar los datos con HtmlAgilityPack ya que se carga de forma asíncrona. Lo que obtienes al consultar la página es su esqueleto.

Lo que podría intentar es ver las llamadas de la red y ver si se llama a un servicio web público. Busque datos json o xml



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué