是否可以使用Google Apps脚本从我在DevTools上看到的代码中获取信息?

问题描述

我真的是这个新手...

是否可以使用Google Apps脚本获得该网站的总价值:https://www.tokstok.com.br/checkout/?orderFormId=e4f540f0a5de4e2c8c007bfc0f8e67b3#/cart

我只能在使用DevTools / Elements时看到该值,在“查看源代码代码中看不到它。

我正在尝试此代码,但未返回信息:

function getData() {
    const url = 'https://www.tokstok.com.br/checkout/?rderFormId=e4f540f0a5de4e2c8c007bfc0f8e67b3#/cart';
    const fromText = '<span class="x-resume-cart__price-value js--resume-cart-value">';
    const toText = '</span>';
    const content = UrlFetchApp.fetch(url).getContentText();
    const scraped = Parser.data(content).from(fromText).to(toText).build();
    Logger.log(scraped);
    return scraped;
}

谢谢!

解决方法

Google Apps脚本不包含该功能作为内置功能。为了仅使用服务器端代码就能做到这一点,您必须实现headless browser

无头浏览器是没有图形用户界面的网络浏览器。

无头浏览器可以在类似于流行的Web浏览器的环境中自动控制网页,但是它们是通过命令行界面或使用网络通信来执行的。它们对于测试网页特别有用,因为它们能够以浏览器相同的方式呈现和理解HTML,包括样式元素,例如页面布局,颜色,字体选择以及JavaScript和Ajax的执行,而使用其他元素时通常不可用测试方法。

另一种替代方法是您使用客户端代码,因为HTML服务可用于创建对话框/边栏/网络应用程序来为其提供服务,包括google.script API支持。后者可以用于将来自客户端的某些数据发送到服务器端代码,但有一定的限制,例如,不能将Date,Function和DOM对象发送到服务器端,但您可以将它们作为JSON传递。

相关