【问题标题】:Is it possible to use Google Apps Script to get an info from the code I see at DevTools?是否可以使用 Google Apps 脚本从我在 DevTools 看到的代码中获取信息?
【发布时间】:2020-11-05 15:21:13
【问题描述】:

我真的是这方面的新手......

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

我只能在使用 DevTools/Elements 时看到值,在“view-source”代码中看不到。

我正在尝试这段代码,但它没有返回信息:

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;
}

谢谢!

【问题讨论】:

  • 数据来自 xhr,所以如果你提出正确的请求,你可能会得到它,但它看起来很痛苦。

标签: google-apps-script web-scraping urlfetch


【解决方案1】:

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

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

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

另一种选择可能是您使用客户端代码,因为 HTML 服务可用于创建对话框/边栏/Web 应用程序以提供服务,包括 google.script API 支持。后者可用于从客户端向服务器端代码发送一些数据,但有一定的限制,即不能将日期、函数和 DOM 对象发送到服务器端,但您可以将它们作为 JSON 传递。

相关

【讨论】:

  • 您不能从控制台检索数据吗? consoleget() 什么的?
  • @Baby_Boy Google Apps 脚本没有 console.get Ref。 developers.google.com/apps-script/reference/base/console 另一方面,“somehing”太宽泛了,你能说得更具体点吗?
  • 请记住这个问题是关于使用服务器端代码的:)
  • 对不起,我不能 100% 确定如果该命令存在的话会被调用,这就是为什么我说“或某事”的原因,我不确定你是否知道或考虑过在页面加载客户端然后获取当前控制台日志之后运行的 console.get 的服务器端版本(可能不存在,基于您的 cmets)编辑:不是专家,我正在尝试学习 :)(不冒犯你,这不是攻击,而是对我行为的解释)
  • @Baby_Boy 我编辑了我的答案并将web-scraping标签添加到问题中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多