網站使用Javascript,我無法使用htmlagilitypack訪問它

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

我正在嘗試使用Windows Phone 8.0 Silverlight應用程序從PlayStation中抓取數據。

但是,我相信該網站使用Javascript,我無法使用htmlagilitypack訪問它。

到目前為止我的代碼是:

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

但是,當應用程序嘗試查找節點“窗格窗格0”時,應用程序正在“foreach”行崩潰。

有可能刮掉數據嗎?如果是這樣,我需要做什麼?

提前致謝。

熱門答案

使用HtmlAgilityPack掃描數據是不可能的,因為它是異步加載的。查詢頁面時得到的是它的骨架。

您可以嘗試觀察網絡呼叫並查看是否調用了公共Web服務。留意json或xml數據



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow