如何从网站提取特定数据并将其存储到工作表中

时间:2020-05-05 19:04:55

标签: json google-apps-script google-sheets

我打算列出一个氏族列表,如下所示:

Player PlayerID赢得平均卡

玩家1#3G32DB4 343 5464

播放器2#PP4V6SS 234 4512

...

每个氏族最多可以拥有50名成员。我目前正在尝试获取所有玩家ID和名称,以便为每个成员运行我的代码以收集如下数据:

var response = UrlFetchApp.fetch(“ https://royaleapi.com/data/player/cw_history/?player_tag=XXXXXXXXXXXXXXXXXXXX”);

我找到了氏族ID的这些来源:

https://www.deckshop.pro/spy/clan/89UJ8J2J

https://royaleapi.com/clan/89UJ8J2J

官方游戏开发人员API,我对此进行了尝试,但是我需要一些授权。 (https://developer.clashroyale.com/#/documentation

获得所有当前氏族成员列表并为每个成员运行代码的最简单方法是什么?

这是我当前针对一个特定成员的代码,计划是针对每个成员运行此代码并建立总和/平均值。如果您想尝试一下:

function royaleapi() {

  var response = UrlFetchApp.fetch("https://royaleapi.com/data/player/cw_history/?player_tag=29YY9L98C");
  var sheet = SpreadsheetApp.getActiveSheet();

  // Parse the JSON reply
  var json = response.getContentText();
  var data = JSON.parse(json);

  sheet.getRange(1,1).setValue("Rank");
  sheet.getRange(1,2).setValue("collection_day_battles_played");
  sheet.getRange(1,3).setValue("cards_earned");
  sheet.getRange(1,4).setValue("battles_lost");
  sheet.getRange(1,5).setValue("number_of_battles");
  sheet.getRange(1,6).setValue("wins");
  sheet.getRange(1,7).setValue("battles_won");
  sheet.getRange(1,8).setValue("timestamp");

  //start the loop
  for (var i=1; i<340; i++)
  {
    var rank = data["battles"][i-1]["rank"];
    sheet.getRange(i+1,1).setValue(rank);

    var collection_day_battles_played = data["battles"][i-1]["collection_day_battles_played"];
    sheet.getRange(i+1,2).setValue(collection_day_battles_played);

    var cards_earned = data["battles"][i-1]["cards_earned"];
    sheet.getRange(i+1,3).setValue(cards_earned);

    var battles_lost = data["battles"][i-1]["battles_lost"];
    sheet.getRange(i+1,4).setValue(battles_lost);

    var number_of_battles = data["battles"][i-1]["number_of_battles"];
    sheet.getRange(i+1,5).setValue(number_of_battles);

    var wins = data["battles"][i-1]["wins"];
    sheet.getRange(i+1,6).setValue(wins);

    var battles_won = data["battles"][i-1]["battles_won"];
    sheet.getRange(i+1,7).setValue(battles_won);

    var timestamp = data["battles"][i-1]["timestamp"];
    sheet.getRange(i+1,8).setValue(timestamp);
  }


}

0 个答案:

没有答案