是否可以使用谷歌应用程序脚本监控网站的更改



我正在制作一个用于监视URL更改的应用程序。为了编程应用程序逻辑,我正在使用谷歌应用程序脚本和谷歌工作表。

我解释了我所想到的监控机制。首先,脚本将从具有以下列的表格中读取数据:

URL:我们指出要监控的URL

第一次:指示是否是第一次分析URL。

更改:指示是否对上次分析进行了更改。

哈希值:应用MD5哈希后分析的URL的HTML代码。

在执行脚本的那一刻,将开始读取工作表的行。每行:

  1. 将读取URL,并执行URLEtchApp方法以从该网页获得响应
  2. getContentText方法将应用于获得的答案,以获得网页的HTML代码,我们将其保存在一个变量中
  3. 我们将在HTML代码上应用MD5哈希算法,并将其保存在一个变量中
  4. 如果是第一次分析URL,我们将在Changes列中指示没有进行任何更改(这是我们第一次分析它(,并且我们将在HashValue列中使用散列HTML代码保存变量的内容
  5. 如果之前已经分析过URL,我们将把之前注册的HashValue值与现在获得的值进行比较
  6. 如果值不同,我们将在Changes列中指示已经发生了更改,并将新的哈希值保存在HashValue列中

我已经对代码进行了编程。它适用于一些网站。但对于其他网站来说,这是行不通的。在分析了不起作用的网站的HTML代码后,通过在线文本比较器查找代码中的差异,我注意到以下内容:

有些网站在重新加载两次同一页面时,即使内容是静态的,代码也会发生一些变化。例如,可以更改的是,HTML标记具有ID box-wrap-140,并且当再次重新加载页面时,ID为box-wrap-148。

因此,由于HTML代码不同,脚本在实现时会检测到是否进行了更改。在研究了很多事情之后,我找不到解决这个问题的替代方案,因此标题中的问题

PS:我们可以忽略一些细节,比如网站没有关闭或给我们404、301等响应代码。这已经编程并正常工作。

PS2:对不起我的英语水平。

Yon可以使用cheerio GS来查找自定义标记,并排除这些更改(<footer>(或包括这些更改(如<div>(。

最新更新