ソースにURLが含まれていない場合、HTMLAgilityPackでページ上のURLを取得する方法は?

c# html html-agility-pack

質問

私はこのページからKBのURLを掻き取ろうとしています: https ://support.microsoft.com/en-us/kb/894199

このページには、次のようなURLがあります。https : //support.microsoft.com/kb/2976978

Chromeでデベロッパーツールを開くと、次のようなデータが表示されます。

<div class="indent">
<a id="kb-link-142" href="https://support.microsoft.com/kb/2976978" target="_self">https://support.microsoft.com/kb/2976978</a>
</div>

今、上記のHTMLに基づいて、私はこのようにhref要素からURLを削ることができるはずだと信じています:

<div class="indent">
<a id="kb-link-142" href="https://support.microsoft.com/kb/2976978" target="_self">https://support.microsoft.com/kb/2976978</a>
</div>

私が実行している問題は、HTMLSourceをダウンロードするとコンテンツが変わることです。つまり、デベロッパーツールで上記のHTMLがページに表示されていても、ページを右クリックしてソースを表示すると、その時点で表示されているHTMLは完全に異なり、URLは含まれていませんレンダリングされたページが表示されます。

私の理論は、HTMLがファイルをどこかにロードし、レンダリングされるページの詳細がファイルに含まれている、何らかのファイル参照があるということです。では、HTMLAgilityPackを使用して、レンダリングされたページにあるURLを取得するにはどうしたらいいですか?

また、 - 私は自分の疑問を認識しますタイトルは本当に混乱するかもしれません。このページが何をしているのかに関する専門用語があれば、私に教えてください。私はタイトルを更新して、より論理的で、他の人が将来検索することができます。

人気のある回答

さて、私は今問題を見る。このページはAngularjsディレクティブとバインディングを使用しており、hrefはポストページの読み込み中です。私たちが得ているページは、Webブラウザエージェントからの解析や実行が起こる前です。つまり、DOM manupulation / javascriptまたはajaxの変更がHtmlDocumentレスポンスに含まれていない場合のページ上の変更を意味します。私はこれについて行く方法は、Webブラウザの要求のようにふりをする、javascriptとajaxを完全に実行させ、 ここでアドバイスされたようにコンテンツを取得させることだと思います 。お役に立てれば!




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ