能否调整代码仅在抓取URL含指定文本时获取结果并保存文件?
调整Google Apps Script代码实现条件化保存文件
当然可以搞定这个需求!我们只需要在原代码里加入内容校验步骤,先确认抓取到的页面文本符合你的指定条件,再执行后续的PDF生成和保存操作。
以下是调整后的完整代码:
function fetchData() { const exportUrl = RESOURCE_URL; const response = UrlFetchApp.fetch(exportUrl); const htmlBody = response.getContentText(); // 定义两个校验条件 const hasTargetString = htmlBody.includes('12345'); // 匹配"abc is X"格式,X是大于5的数字 const numberMatch = htmlBody.match(/abc is (\d+)/); const hasValidNumberFormat = numberMatch && parseInt(numberMatch[1], 10) > 5; // 满足任一条件才执行保存操作 if (hasTargetString || hasValidNumberFormat) { const blob = Utilities.newBlob(htmlBody, 'text/html') .getAs('application/pdf') .setName(FILE_NAME); return folder.createFile(blob); } else { // 不满足条件时可以返回提示或null,按需调整 console.log("页面内容不满足指定条件,未保存文件"); return null; } }
关键逻辑说明
- 字符串匹配:用
includes('12345')直接检查页面文本是否包含目标字符串,简单直接。 - 格式匹配与数字校验:用正则表达式
/abc is (\d+)/捕获"abc is "后面的数字,然后把捕获到的字符串转成整数,判断是否大于5。这里要注意先检查numberMatch是否存在(避免页面没有该格式文本时报错),再做数字判断。 - 条件分支:只有当两个条件满足其中一个时,才会生成PDF并保存到指定文件夹;不满足时会在控制台输出提示,你也可以根据需要改成发送通知或者其他操作。
内容的提问来源于stack exchange,提问作者user3316048
相关产品推荐
相关产品推荐

