【问题标题】:Google Spreadsheet Pushing to Array谷歌电子表格推送到数组
【发布时间】:2023-03-07 09:28:01
【问题描述】:

我正在尝试创建一个 Google 表格脚本,我听说它是​​完整的 Javascript,所以有人告诉我。我只是想通过解析电子表格中的 HTML 来创建与在线游戏中的项目相关的任务列表。

示例:http://everquest.allakhazam.com/db/item.html?item=14295

在这种情况下,理想情况下,它应该包含 4 个任务名称、它们的位置和任务 ID(可以在源代码的 URL 中找到)。但我现在只是想提取任务 ID,如下所示。

function myFunction(itemid) {

  var regexp = /quest.html\?quest\=(.*)"/;
  var page = UrlFetchApp.fetch('http://everquest.allakhazam.com/db/item.html?item=' + itemid).getContentText();
  var matches = [];
  var number = page.match(/<li><a href="\/db\/quest.html\?quest\=(.*)"/); 

 for (var i in number) {
   matches.push(number[i]);
 }

 return matches;
}

但脚本似乎只是挂在“正在加载..”上并且没有做任何事情。如果我在 page.match 之后添加 'return number ,它会返回第一个任务 ID 很好。所以它似乎与推送到导致问题的数组有关。

【问题讨论】:

    标签: javascript google-sheets


    【解决方案1】:

    最好不要将 HTML 解析为文本。您可以使用带有 importxml 函数的公式来使用 XPath 获取数据:

    =importxml("http://everquest.allakhazam.com/db/item.html?item=14295";"//div[@id='quest']//b|//div[@id='quest']/ul/li/a|//div[@id='quest']/ul/li/a/@href")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      相关资源
      最近更新 更多