URL の変更を監視するアプリケーションを作成しています。アプリケーション ロジックをプログラムするために、Google Apps Script と Google Sheet を使用しています。
私が考えた監視の仕組みについて説明します。まず、スクリプトは次の列を持つシートからデータを読み取ります。
URL : 監視したい URL を示します
初めて: URL が分析されるのが初めてかどうかを示します。
変更:前回の分析時に変更が加えられたかどうかを示します。
HashValue: MD5 ハッシュを適用した後に分析された URL の HTML コード。
スクリプトの実行時に、シートの行の読み取りが開始されます。行ごとに:
- URL が読み取られ、URLFetchApp メソッドが実行されて、その Web ページからの応答が取得されます。
- 取得した回答に getContentText メソッドを適用して Web ページの HTML コードを取得し、変数に保存します。
- HTML コードに MD5 ハッシュ アルゴリズムを適用し、それを変数に保存します。
- URL が初めて分析される場合、変更が行われていないことを [変更] 列に示し (分析するのは初めてです)、変数の内容をハッシュ値と共に HashValue 列に保存します。 HTML コード。
- URL が既に分析されている場合は、以前に登録された HashValue 値と現在取得されている値を比較します。
- 値が異なる場合は、[変更] 列に変更があったことを示し、HashValue 列に新しいハッシュ値を保存します。
私はすでにコードをプログラムしました。また、一部の Web サイトで動作します。しかし、他の Web サイトでは機能しません。動作しなかった Web サイトの HTML コードを分析した後、オンライン テキスト コンパレーターを使用してコードの違いを探したところ、次のことがわかりました。
同じページを 2 回リロードすると、コンテンツが静的であってもコードが少し変化する Web サイトがあります。たとえば、変更できるのは、HTML タグに ID box-wrap-140 があり、ページを再度リロードすると ID が box-wrap-148 になることです。
したがって、実装されているスクリプトは、HTML コードが異なるため、変更が行われたことを検出します。多くのことを調査した後、この問題を解決する代替手段が見つからないため、タイトルの質問
PS: Web サイトがダウンしていない、404、301 などの応答コードが返されたなどの詳細は無視できます。これはすでにプログラムされており、正しく動作します。
PS2: 私の英語のレベルについて申し訳ありません。