Last edited time
Dec 26, 2023 04:48 PM
summary
注意事项
如下:- Googlesheets的工作表一定要选对,默认的是
sheet1
,中文会显示工作表1
,注意在代码中修改
- scriptID:
1ReeQ6WO8kKNxoaA_O0XEQ589cIrRvEBA9qcWpNqdOP17i47u6N9M5Xh0
可在对应github中找到
- 代码是英文注释,特意写了一份中文的,需要懂一些代码,做修改
- 选取
范围
非常重要
- 授权Google时显示安全问题记得选对
从电子表格设置开始,我们将保持非常简单--我抓取了一些国家的特定旅游咨询页面的 URL,并将其列在上面链接的示例电子表格的 B 列中。 记住为列标题预留第 1 行,您将用它来标识要在 sheet.codes 简代码中提取信息的列。
输入所有 URL 后,选择所有 URL 并导航至 "数据 > 命名范围",为 URL 集命名。 我们稍后将在 Google Apps 脚本功能中引用此命名范围。
列出 URL 后,在 Google Sheets 菜单中导航到 "工具 > 脚本编辑器",打开 Google Apps 脚本编辑器,在这里我们将编写一个自定义函数,用于从各个国家的旅游咨询页面获取所需的信息。
首先,给你的应用程序脚本项目起个名字。
接下来,点击 "库 "旁边的 "+"符号,我们将连接一个名为 Cheerio 的脚本库,以帮助我们进行网络搜刮(我已经在下面的截图中添加了 Cheerio,所以你还看不到)。
然后点击 "添加",将脚本库添加到 Google Apps 脚本中。
好了,现在我们可以编写刮擦函数了。
我们需要从每个页面上抓取两个元素--旅行警告的日期和具体的旅行警告状态,这两个元素都在每个页面的顶部。
通过使用 Google Apps Script 本身的 URL Fetch 服务访问每个页面,并使用 Cheerio 解析 HTML,我们就能锁定每个网页上的元素,从而获得我们所需的内容。 每个国家的网页都使用相同的模板,因此我们需要锁定的 CSS 类对于每个元素来说都是一致的。
下面是函数的代码,以及注释:
完成函数编写后,点击 "保存",然后点击 "运行",你就会看到执行日志和 Google Sheets 电子表格中开始出现结果,如下图所示。
显然,我们需要对 "latestadvisory "字段进行一些清理,但这很容易,只需使用一些修剪功能即可。
好了,现在把它设置为自动定时运行,这样我们就可以每天获取新信息了。
要设置定时器,请进入 Google Apps 脚本的 "触发器 "部分(以秒表表示)。 在右下角,点击蓝色的 "添加触发器 "按钮。
在这里,您可以配置一个时间驱动的触发器,在每天、每小时或其他时间段的特定间隔自动运行功能。 在上面的示例中,我设置了一个定时器,每天早上 6 点运行旅行建议功能,并在功能失败时立即发出通知。
- 作者:开户通
- 链接:https://fx.ssgg.net/googlesheets-scripts
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。