HTMLAgailityPackで、innerhtmlメソッドに含まれていないWebサイトからデータを取得する方法。たとえば、以下のリンクにある場合:
https://www.theice.com/productguide/ProductSpec.shtml?specId=1496#expiry
コントラクトシンボルで始まるテーブルがinnerhtmltextに含まれていません。HTMLAgailityPackを介してこのテーブルデータを取得する方法を教えてください。
よろしく
HTMLAgailityPackで、innerhtmlメソッドに含まれていないWebサイトからデータを取得する方法。たとえば、以下のリンクにある場合:
https://www.theice.com/productguide/ProductSpec.shtml?specId=1496#expiry
コントラクトシンボルで始まるテーブルがinnerhtmltextに含まれていません。HTMLAgailityPackを介してこのテーブルデータを取得する方法を教えてください。
よろしく
PleaeはこのXPathを使用して、必要なテーブルを取得します //*[@id="right"]/div/table
例えば
HtmlNode node = doc.DocumentNode.SelectSingleNode("//*[@id="right"]/div/table"));
string html = node.InnerHtml;
「innerhtml に入らない」場合は、スクリプトによってそこに入れられていることを意味します。このページは自分で確認できないので、わかりません。
スクリプトからのものである場合、簡単には取得できません。JavaScript を表示して遊んだり、入ってくるデータを読み取ったりすることができます。
基本的に、ブラウザに Firebug をインストールし、行われているデータ転送を確認します。幸運な場合もあれば、そうでない場合もあります。
または、単純な方法を使用して、winforms WebBrowser コントロールを使用し、そこにロードして、スクリプトを実行させ、そこからスクレイピングすることもできます。これにより、メモリがリークし、GDI ハンドルが狂ったようになることに注意してください。
https://www.theice.com/productguide/ProductSpec.shtml?expiryDates=&specId=1496&_=1342907196619に GET リクエストを送信する必要があります。
コンテンツは JavaScript を介して動的にロードされています。おそらく、innerhtmltext を解析して、javascript が GET 要求を送信するリンクを確認できます。