2013-10-24 64 views
0

我做了一個簡單的程序,用於在註釋中獲取youtube用戶。 這是代碼HtmlAgilityPack HtmlNodeCollection返回NULL,不應該

string html; 
     using (var client = new WebClient()) 
     { 
      html = client.DownloadString("http://www.youtube.com/watch?v=ER5EnjskCvE"); 
     } 
     HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
     doc.LoadHtml(html); 
     List<string> data = new List<string>(); 
     HtmlNodeCollection nodeCollection = doc.DocumentNode.SelectNodes("//*[@id='comments-view']/ul[1]/li[1]/a/span/span/span/span/img"); 
     foreach (HtmlNode node in nodeCollection) 
     { 
      data.Add(node.GetAttributeValue("alt",null)); 
     } 

但我有我的nodeCollection是返回null的問題。 對於XPath的,我用複製XPath選項中鉻下F12

+1

爲了得到答案,你只需要調試它,通過檢查的'價值html'在被WebClient下載之後。我剛剛爲您完成了這一任務,這是因爲WebClient下載的HTML只是用於呈現完整頁面的基本Javascript。因此,HtmlAgilityPack不會「看到」JS之後的任何東西。我建議只需完全拋棄HtmlAgilityPack並使用專爲YouTube設計的API:https://developers.google.com/youtube/ – Arran

+0

謝謝,將檢查YT API – user2913512

回答

0

試試這個代替「*」,「格」
"/html/body//div[@id='comments-view']/ul[1]/li[1]/a/span/span/span/span/img"

相關問題