0

HTMLAgailityPackで、innerhtmlメソッドに含まれていないWebサイトからデータを取得する方法。たとえば、以下のリンクにある場合:

https://www.theice.com/productguide/ProductSpec.shtml?specId=1496#expiry

コントラクトシンボルで始まるテーブルがinnerhtmltextに含まれていません。HTMLAgailityPackを介してこのテーブルデータを取得する方法を教えてください。

よろしく

4

3 に答える 3

0

PleaeはこのXPathを使用して、必要なテーブルを取得します //*[@id="right"]/div/table

例えば

HtmlNode node = doc.DocumentNode.SelectSingleNode("//*[@id="right"]/div/table"));
string html = node.InnerHtml;
于 2012-07-21T21:57:02.840 に答える
0

「innerhtml に入らない」場合は、スクリプトによってそこに入れられていることを意味します。このページは自分で確認できないので、わかりません。

スクリプトからのものである場合、簡単には取得できません。JavaScript を表示して遊んだり、入ってくるデータを読み取ったりすることができます。

基本的に、ブラウザに Firebug をインストールし、行われているデータ転送を確認します。幸運な場合もあれば、そうでない場合もあります。

または、単純な方法を使用して、winforms WebBrowser コントロールを使用し、そこにロードして、スクリプトを実行させ、そこからスクレイピングすることもできます。これにより、メモリがリークし、GDI ハンドルが狂ったようになることに注意してください。

于 2012-07-21T21:49:23.620 に答える
0

https://www.theice.com/productguide/ProductSpec.shtml?expiryDates=&specId=1496&_=1342907196619に GET リクエストを送信する必要があります。

コンテンツは JavaScript を介して動的にロードされています。おそらく、innerhtmltext を解析して、javascript が GET 要求を送信するリンクを確認できます。

于 2012-07-21T21:47:59.723 に答える