0

URL の変更を監視するアプリケーションを作成しています。アプリケーション ロジックをプログラムするために、Google Apps Script と Google Sheet を使用しています。

私が考えた監視の仕組みについて説明します。まず、スクリプトは次の列を持つシートからデータを読み取ります。

URL : 監視したい URL を示します

初めて:​​ URL が分析されるのが初めてかどうかを示します。

変更:前回の分析時に変更が加えられたかどうかを示します。

HashValue: MD5 ハッシュを適用した後に分析された URL の HTML コード。

スクリプトの実行時に、シートの行の読み取りが開始されます。行ごとに:

  1. URL が読み取られ、URLFetchApp メソッドが実行されて、その Web ページからの応答が取得されます。
  2. 取得した回答に getContentText メソッドを適用して Web ページの HTML コードを取得し、変数に保存します。
  3. HTML コードに MD5 ハッシュ アルゴリズムを適用し、それを変数に保存します。
  4. URL が初めて分析される場合、変更が行われていないことを [変更] 列に示し (分析するのは初めてです)、変数の内容をハッシュ値と共に HashValue 列に保存します。 HTML コード。
  5. URL が既に分析されている場合は、以前に登録された HashValue 値と現在取得されている値を比較します。
  6. 値が異なる場合は、[変更] 列に変更があったことを示し、HashValue 列に新しいハッシュ値を保存します。

私はすでにコードをプログラムしました。また、一部の Web サイトで動作します。しかし、他の Web サイトでは機能しません。動作しなかった Web サイトの HTML コードを分析した後、オンライン テキスト コンパレーターを使用してコードの違いを探したところ、次のことがわかりました。

同じページを 2 回リロードすると、コンテンツが静的であってもコードが少し変化する Web サイトがあります。たとえば、変更できるのは、HTML タグに ID box-wrap-140 があり、ページを再度リロードすると ID が box-wrap-148 になることです。

したがって、実装されているスクリプトは、HTML コードが異なるため、変更が行われたことを検出します。多くのことを調査した後、この問題を解決する代替手段が見つからないため、タイトルの質問

PS: Web サイトがダウンしていない、404、301 などの応答コードが返されたなどの詳細は無視できます。これはすでにプログラムされており、正しく動作します。

PS2: 私の英語のレベルについて申し訳ありません。

4

1 に答える 1