【发布时间】:2019-12-02 14:30:03
【问题描述】:
我有一个应用程序脚本,它抓取一个 URL 并返回它的内容。然后,我想在页面上运行 javascript 之前搜索页面中的特定字符串。然后,我想在 javascript 完成之后评估同一个页面。
原因是我有一个第 3 方脚本,可以根据地区替换页面上的电话号码。我想在 javascript 源代码之前评估原始数据,以查看是否存在可替换数字之一。如果是这样,我想检查 after-javascript 版本以验证它是否已被该地区的数字替换。
我可以通过在浏览器中选择“查看源代码”手动执行此操作,然后检查找到该字符串的检查元素。
我的问题是我无法从 UrlFetchApp 获取原始来源。有没有办法做到这一点?
提前致谢, 汉斯
--
代码
var doc = UrlFetchApp.fetch(url).getContentText();
// doc is the after-javascript version...
【问题讨论】:
-
UrlFetchApp.fetch()返回从 HTTP 请求中检索到的内容。不会执行从调用中检索到的 Javascript 代码。您可以使用本地应用程序发出请求(例如 curl、postman 或 insomnia http)来验证此行为——所有应用程序都应返回相同的响应(无需执行 JS)。您能否提供您尝试获取的 URL,以及您尝试从中提取的数据?非常感谢。 -
我明白发生了什么。我正在搜索body.innerText。然而,CSS 用我正在搜索的电话号码隐藏了(可见性:不可见),并且显然 innerText 不会返回这样的 div。我虽然电话号码已经换成了地区电话号码。谢谢!嘿 @Hans 据我所知,即使 div 设置为不可见,您仍然应该能够从中获取数据。您介意创建一个答案来解释您的发现吗?谢谢!
标签: google-apps-script urlfetch