2016-06-30 9 views
-3

inspect要素の使用時に表示されるソースコードは、表示ページソースをクリックした場合に表示されるものよりも多くなります。私は別の質問から、ビューページソースのソースコードが静的で、 "inspect"で表示されたコードが動的なので、その理由が分かった。私がWebClientからDownloadDataまたはDownloadString関数を使ってみると、動的ではなく静的なコードしかダウンロードされませんでした。 C#を使用して動的コードをダウンロードするにはどうすればよいですか?また、なぜinspectのようなコードのすべての要素がページソースを表示しないのでしょうか?C#でウェブページ全体のソースコードをダウンロードすることが可能です

ちょうど私の質問を明確にするために、あなたはどのようにC#で "検査"で見ることができるすべての要素をダウンロードしていますか?

編集:申し訳ありませんが、私の質問は非常に幅広いと考えられています。私はより具体的にしようとします。ビューのページソースをクリックしたときに気づいたことから、inspect機能と同じくらい多くのコードは表示されません。私はこれを発見するために何をしたのかを説明します。私の質問を理解するためにリアルタイムでそれをしてください。何か/何かのGoogle検索を行います...最初の検索結果の青いテキストを右クリックし、要素の点検や点検をクリックします。そのリンクのhref要素がどのように強調表示されているかを確認してください。ページをもう一度右クリックし、ページソースを表示をクリックします。ちょうど開いたタブのhref要素を見つけることができますか?もしそうなら、私はうんざりしましたが、私の経験ではできなかったため、WebClientクラスのメソッド/関数でダウンロードできませんでした。

+0

_Inspect_は、CSSがウェブサイトに適用された後の完全な詳細を提供します。 _download_と_inspect_の違いについては、CSSファイルはなく、C#コードはありません。あなたはそれをダウンロードできるはずです。 – Aganju

+0

@Aganjuは完全に真ではありませんが、JQuery/Javascriptは、そのページをオン/オフ要素のinclude/removeなどのように変更することもできます。 – Prix

+1

@codehelp4 JavascriptとJQueryは完全にロードされた後にページを修正するため、ソースのダウンロード中ではありません。 Javascriptをエミュレートするか、デフォルトでWebブラウザを使用してページを表示し、DOMデータをダウンロードするなどのソリューションを使用する必要があります。 – Prix

答えて

1

次のいずれかの方法を使用してこれを行うことができます。

  1. は、C#のフォームにWebBrowserコントロールを追加し、完全にロードした後にその内容を取得します。
  2. これを行うにはhttps://sourceforge.net/projects/webkitdotnet/のようなライブラリを使用して、JSの変更後にソースを取得することをサポートしています。
+0

私はそれを前に使ったと確信しています!また、いいえ。 Webブラウザコントロールを単独で使用することもできます。 – MoustafaS

+1

私はHTMLAgilityPackを毎日使っていますが、あなたが変わったことをしていない限り、ソースを変更することはできません.1つでは、HTMLAgilityPackは本当に必要ではありませんが、オプション/機能は失われます。私はそれを使用したことがないwebkitdotnetについて同じことを言うことができません。 – Prix

+0

@Prix - HtmlAgilityPackはAFAIKのページをダウンロードまたはレンダリングしません。文字列内にあるHTMLを調べることはできませんか? – Enigmativity

関連する問題