2016-07-05 54 views
1

我試圖從Instagram配置文件中獲取一些信息。 我使用Google Chrome生成了XPathC# - SelectNode HtmlAgilityPack返回空

//*[@id="react-root"]/section/main/article/div/div[1]/div 

但是,沒有發現任何東西。 我只能找到了

//*[@id="react-root"] 

這是一個**<span>**

沒有更多的所在地,是有什麼原因嗎?難道我做錯了什麼?

var baseURL = "https://www.instagram.com/"; 

var client = new HtmlWeb(); 


var paginaPerfil = client.Load(baseURL + "belalao"); 


var nos = paginaPerfil.DocumentNode.SelectNodes("//*[@id='react-root']/section/main/article/div/div[1]/div"); 
      var quantidade = nos == null ? 0 : nos.Count; 

回答

1

在這個時刻,https://www.instagram.com/belalao有一個空<span id="react-root"></span>,讓你的代碼工作正常。也許你期待的是將用React組件執行的DOM填充DOM,但HtmlAgilityPack將只分析你下載的HTML的,不執行JavaScript並在之後進行分析。

查看頁面上的源代碼(與使用DOM檢查器不一樣),然後您將看到它所看到的內容。

+0

該死的真相。我現在知道了。 有沒有什麼辦法可以在執行JavaScript之後獲取HTML代碼? –

+0

您可以嘗試使用像PhantomJS這樣的無頭瀏覽器。我不確定React是否兼容。 – Jacob