2017-09-25 13 views
-2

私は、変更のWebサイトをどのように監視し、その背後で使用されている概念が何であるかを理解しようとしています。 ウェブサイト全体をクロールし、クロールされたウェブページをデータベースの1つの店舗と比較し、ウェブページが更新されている場合は古いページをHTMLに上書きするか、存在しない場合はデータベースに保存するクローラを作成すると思います。 私の質問はここにあります: 1- 2つのWebページが同じ場合はどう比較できますか?私は文字でWebページの文字の同等の文字列を比較する必要がありますか? 2ウェブサイト全体をクロールする必要がありますか?ウェブサイトのHTMLページのサイズが5Gバイトで、時間ごとにウェブサイトの変更を検出したいと考えて、毎時5Gbのデータをクロールしてダウンロードすると、多くの帯域幅を消費することになります。ウェブサイトの監視はどのように機能しますか?

私はコードを書くことができます、私はちょうどウェブサイトを監視するために使用される一般的な習慣を知りたいです。

ありがとう。

+0

変更を確定するためにLast-Modificationヘッダーを使用していると思います。また、クロール要求がある場合は、クロール要求が再度クロールされます。 –

答えて

0

1つのオプションは、ページ全体をHTMLとしてではなく、データベースにページのハッシュを格納することです。これにより、保存されている値と比較して値を確認することができます。しかし、これを行うにはまだページを "読み"なければならないので、5GBのサイトではこれを行うために5GBを "ダウンロード"します。

私はページ、URL、最終更新日、コンテンツハッシュなどのメタデータだけを保持していると仮定していますが、なぜこれを行うのかは実際にはわかりません。

おそらく、MartinJonešが、ほとんどの場合、ページヘッダーを取得し、Last-Modificationパラメーターをチェックすることを示唆しています。

私はあなたが所有/運営しているサイトでのみこれをやっていると仮定しています。私のサイトをクロールして私の帯域幅の使用量をゼロにしてしまう、マーケティングのボットよりも嫌いなものは何もありません。彼らはちょうどそれの地獄のために私の帯域幅を食べている。

+0

詳細なコメントありがとうございます。私はちょうど教育の目的のためにそれをやっていると、どのように検索エンジンは何百万のWebサイトをクロールするクロール作業を学ぶためにしようとしています。また、Last-modificationヘッダーは私には新しいものでした。私はそれがウェブサイト全体ではなくウェブページの最終更新時間をテストするためにしか使用できないと思う。ウェブサイト全体をクロールするのではなく、ヘッダーのようなものを使用して*新しい*ウェブページ/コンテンツを追加したかどうかをテストできますか? – Anon

+0

これを行うには、sitemap.xmlをチェックすることができます(古いバージョンと比較できるのであれば、すでに保存済みです)。サイトがすべてのページをsitemap.xmlに追加していると仮定します。 しかしそれ以外に、本当に簡単な方法はありません。ページはそれ自身のエンティティなので、実装されている場合は、サイトマップ以外の中央チェックはありません。 検索エンジンはサイトマップを使用しますが、ページ上の単語にもインデックスを付けて、ページ全体を明確にダウンロードします。また、ハイパーリンクを使用してサイト構造を決定します。 – Tyroga

関連する問題