2016-07-05 5 views
1

Instagramプロファイルから情報を取得しようとしています。 Google ChromeでXPathを生成しましたC# - SelectNode HtmlAgilityPackでNullを返す

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

しかし、何も見つかりません。私は**<span>**

何よりも配置されているときだけアップ

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

を見つけることができます 、何らかの理由があるのでしょうか?私は何か間違っているのですか?このとき

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をポピュレートするJavaScriptが実行されると期待しているかもしれませんが、HtmlAgilityPackは初期 HTMLのみを解析し、JavaScriptは実行せず、後で分析します。

DOMインスペクタを使用した場合と同じではなく、ページ上のソースを表示すると、その内容が表示されます。

+0

まあまあです。今、私は分かる。 JavaScriptの実行後にHTMLコードを取得する方法はありますか? –

+0

PhantomJSのようなヘッドレスブラウザを試すことができます。 Reactがそれと互換性があるかどうかはわかりません。 – Jacob

関連する問題