importxml Google sheats提出URL错误(仅需要打开时脚本触发帮助)



我的日期来源是:https://walletinvestor.com/forecast/achain-prediction

在网站上,我有三个主要的数字,我试图将其导入我的Google电子表格(当前价格,1年预测,5年预测(。

在单元格中我有:

https://walletinvestor.com/forecast/achain-prediction

我的D列将用于导入"当前价格"数字,我的E列将用于导入" 1年预测"数字,而我的F列将用于导入" 5 - 年预测"编号。

这是我在D3中使用的代码以导入这三个数字:

=arrayformula(regexreplace(TRANSPOSE(IMPORTXML(C3,"//div[@class='col-md-4 col-xs-12 np']//span[@class='bignum']")),"USD",""))

大约有1%的时间会起作用,它将导入我需要的数字,但是大多数时间我会遇到"无法获取URL"的错误。我认为这是因为Google表格太频繁地将数据提取。我想知道的是,是否有一个Google Shays脚本,我可以在打开电子表格时只能删除这些数据?我正在脚本文盲,任何帮助都将不胜感激。

我认为有2种模式可以实现您想要的东西。

模式1:

如果要将值检索为自定义函数,那么此脚本如何?例如,当您使用此功能时,请将=fetch(C3)放入D3

示例脚本1:

function fetch(url) {
  var data = UrlFetchApp.fetch(url).getContentText();
  var values = data.match(/col-md-4 col-xs-12 np">([sS]+?)col-md-12/g)[0].match(/s([0-9.]+)(?=[ |&])/g);
  return [values.map(function(e){return e.trim()})];
}

模式2:

如果您想在打开电子表格时每次检索值,那么此脚本呢?使用此功能时,请安装onOpen()的触发器。

示例脚本2:

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var urls = ss.getRange("C3:C21").getValues();
  var res = [];
  for (var i in urls) {
    var data = UrlFetchApp.fetch(urls[i][0]).getContentText();
    try {
      var values = data.match(/col-md-4 col-xs-12 np">([sS]+?)col-md-12/g)[0].match(/s([0-9.]+)(?=[ |&])/g);
      res.push(values.map(function(e){return e.trim()}));
    } catch(e) {
      res.push(["", "", ""]);
    }
  }
  ss.getRange("D3:F21").setValues(res);
}

注意:

  • 对于https://walletinvestor.com/forecast/funfair-prediction,在检索到的数据中找不到col-md-4 col-xs-12 np。因此无法检索值。
    • 在这种情况下,我无法理解您想要的值。对不起。

如果我误解了您的问题,对不起。

相关内容

  • 没有找到相关文章

最新更新