我正在制作一个用于监视URL更改的应用程序。为了编程应用程序逻辑,我正在使用谷歌应用程序脚本和谷歌工作表。
我解释了我所想到的监控机制。首先,脚本将从具有以下列的表格中读取数据:
URL:我们指出要监控的URL
第一次:指示是否是第一次分析URL。
更改:指示是否对上次分析进行了更改。
哈希值:应用MD5哈希后分析的URL的HTML代码。
在执行脚本的那一刻,将开始读取工作表的行。每行:
- 将读取URL,并执行URLEtchApp方法以从该网页获得响应
- getContentText方法将应用于获得的答案,以获得网页的HTML代码,我们将其保存在一个变量中
- 我们将在HTML代码上应用MD5哈希算法,并将其保存在一个变量中
- 如果是第一次分析URL,我们将在Changes列中指示没有进行任何更改(这是我们第一次分析它(,并且我们将在HashValue列中使用散列HTML代码保存变量的内容
- 如果之前已经分析过URL,我们将把之前注册的HashValue值与现在获得的值进行比较
- 如果值不同,我们将在Changes列中指示已经发生了更改,并将新的哈希值保存在HashValue列中
我已经对代码进行了编程。它适用于一些网站。但对于其他网站来说,这是行不通的。在分析了不起作用的网站的HTML代码后,通过在线文本比较器查找代码中的差异,我注意到以下内容:
有些网站在重新加载两次同一页面时,即使内容是静态的,代码也会发生一些变化。例如,可以更改的是,HTML标记具有ID box-wrap-140,并且当再次重新加载页面时,ID为box-wrap-148。
因此,由于HTML代码不同,脚本在实现时会检测到是否进行了更改。在研究了很多事情之后,我找不到解决这个问题的替代方案,因此标题中的问题
PS:我们可以忽略一些细节,比如网站没有关闭或给我们404、301等响应代码。这已经编程并正常工作。
PS2:对不起我的英语水平。
Yon可以使用cheerio GS来查找自定义标记,并排除这些更改(<footer>
(或包括这些更改(如<div>
(。