2013-10-24 4 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를 들어 은 내가

+1

을 시도 F12에서 크롬에 복사 된 XPath 옵션을 사용 html' 파일을 다운로드 한 후 'WebClient'에 의해 다운로드됩니다. WebClient에서 다운로드 한 HTML이 전체 페이지를 렌더링하는 데 사용되는 기본적인 자바 스크립트 일 뿐이니까요. 따라서 HtmlAgilityPack은 JS를 지나치는 어떤 것도 보지 않습니다. HtmlAgilityPack을 모두 버리고 YouTube 용 API를 사용하는 것이 좋습니다. https://developers.google.com/youtube/ – Arran

+0

감사합니다. YT API를 확인합니다. – user2913512

답변

0

이 '의 값을 확인하여, 당신은 단지 그것을 디버깅해야 답을 얻으려면,이 "*"대체 "DIV"
"/html/body//div[@id='comments-view']/ul[1]/li[1]/a/span/span/span/span/img"

관련 문제