网站使用Javascript,我无法使用htmlagilitypack访问它

时间:2015-03-10 23:14:14

标签: c# windows-phone-8 web-scraping html-agility-pack

我正在尝试使用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;
}

然而,该应用程序正在崩溃的#fore;'尝试查找节点'窗格窗格'。

时的行

是否可以刮取数据?如果是这样,我需要做什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

由于它是异步加载的,因此无法使用HtmlAgilityPack抓取数据。查询页面时得到的就是它的骨架。

您可以尝试观看网络呼叫并查看是否调用了公共Web服务。留意json或xml数据