私はC#+ HttpWebRequestを使用しています。 頻繁に更新をチェックする必要があるHTMLページがあります。 古いバージョンのHTMLページ(文字列など)が既にあると仮定した場合、ページ全体をダウンロードしてそのページと比較して、「デルタ」またはページの変更部分のみをダウンロードする方法はありますか古いバージョンですか?- HTMLの変更部分のみをダウンロードするには
答えて
Webサーバーにその機能が含まれている場合に限り、それは起こりそうもありません。だから、申し訳ありません。
特定のページではありません。
しかし、タイムスタンプや何らかの種類のIDに基づいて差異を与える機能を書いた場合は、はいです。これは何も標準的ではありません。シンジケーションを使用してページのフィードを作成するか、必要に応じてWebサービスを作成する必要があります。もちろん、監視したいWebサーバーを制御する必要がありますが、そうでない場合もあります。
古いバージョンがあり、サーバーに新しいバージョンがあります。変更されたことを知らずにデルタだけをダウンロードする方法はありますか?あなたはどのような古いバージョンを持っているのか知ることなく、デルタをどのように配信することができますか?
明らかに、ページ全体をダウンロードする方法はありません。または古いバージョンをサーバにアップロードすることもできます(サーバにそれを許可するサービスがあると仮定していますが、それはトラフィックを増加させるだけです)。
短い答えは、いいえです。長い答えは、HTMLがバージョンコントロールにあり、ある特定のバージョン番号が与えられているサーバーサイドコードを書くと、現在のバージョンと指定されたバージョンとの間の差分を提供するということです。 HTMLがバージョンコントロールになく、あなたのバージョンを現在のバージョンと比較したいのであれば、クライアント上で比較を行うために現在のバージョンをダウンロードするか、あなたのバージョンをサーバにアップロードして、比較して差を返す明らかに、クライアントに新しいバージョンを再ダウンロードさせるほうが効率的です。
私の前の他の回答と同様に、ダウンロードを回避する方法はありません。
ただし、同じ場合は、ページリビジョンごとにハッシュを作成し、現在のハッシュと新しいハッシュを比較することで、htmlを解析することはできません。次に、差分アルゴリズムを使用して 'デルタ'情報のみを抽出します。私は、ほとんどの現代クローラーがこれらのラインに沿って何かをすると思います。
IfModifiedSince
のプロパティをHttpWebRequest
に設定します。
これは「デルタ」を与えませんが、ページがまったく変更されていない場合は301で返信します。
デルタをリクエストしたときに古いバージョンがWebサーバーに保存されていた場合、バージョン番号または変更したバージョンを送信したとします。理論的には、違い。しかし、両方のコピーは、違いが何であるかを誰かが知るために、1台のマシン上になければなりません。
HttpWebRequestクラスのAddRangeメソッドを使用できます。 これで、ダウンロードするリソースのバイト範囲を指定できます。 これは、httpダウンロードの中断を継続するためにも使用されます。
これはデルタではありませんが、変更する部分だけをロードするとトラフィックが減少します。
- 1. bootstrap.cssフォントファミリのHTMLを自分のダウンロードしたフォントに変更するには
- 2. htmlダウンロードの名前を変更する
- 3. 変更されたファイル部分のみをサーバーにアップロードする
- 4. SQLのdatetimeオフセットの時間部分のみを変更する
- 5. JavaFX/SceneBuilder - シーンの部分のみを変更する
- 6. ファイルの特定の部分のみを変更します。
- 7. HTMLダウンロード属性の変更ファイル名
- 8. 変更フロート部分
- 9. fields_forrのデフォルト部分ファイル名を変更するには?
- 10. Google Calendarの部分的なGETリクエストhtmlダウンロード
- 11. 元のHTMLを読み込み中に変更する方法
- 12. HTML、CSSのテキストエリアのテキスト部分のフォントサイズを変更するにはどうすればよいですか?
- 13. Android部分ダウンロードhttp
- 14. HTMLテキストのみを変更するには?
- 15. 内部HTMLを表示するhtmlクリックイベントを変更するC#
- 16. 変更外部HTMLヘッダーアクティブ
- 17. Rails 3:部分的な部分を変更するためのjquery
- 18. 部分ダウンロードではなく、ページソースを完全にダウンロードする方法は?
- 19. iOS:部分的にテキストの色を変更する方法
- 20. ClickでコントローラのAngularJS changeを部分的に変更する
- 21. C#の部分クラスの変更/追加
- 22. HTML、JSでマウスをクリックして長方形部分の色を変更するには?
- 23. TensorFlow - データの可変長部分を読み取る方法は?
- 24. 変更htmlのスパン内部テキスト
- 25. ファイル名の部分に応じてSharepointファイルタイプのアイコンを変更するには?
- 26. C++のシステム関数でコマンドの特定の部分を変更するには
- 27. NSMutableAttributedStringの複数の部分の属性を変更する
- 28. クラスの他の部分の値を変更するUnreal C++
- 29. TFS/VSTS2010の部分的なチェックイン変更
- 30. javascript変数はHTML部分にはありません
プレーンオールのHTTPリクエストではありません。主流がAJAXと呼ぶものを調べることをお勧めします。 – anddoutoi