导入XML用于NFL分数2018 - 新XML?

问题描述 投票:0回答:2

去年我获得了IMPORTXML,因此我可以获得Google表格的实时评分更新。我今天开始使用它准备2018年,它仍然在拉去去年的数据。我不熟悉如何获得今年所需的信息,如果它已经改变或者它太快了。我希望有更多知识的人可以指导我或指向正确的方向?

=importxml("http://www.nfl.com/liveupdate/scorestrip/ss.xml","//g/@eid" )

这是我使用的领域之一,它仍然在拉2017.谢谢!

php xml google-sheets feed
2个回答
2
投票

看起来XML服务已经停止或不那么容易找到。

但是,我相信这个站点是JSON等价物。

http://www.nfl.com/liveupdate/scores/scores.json

此网站也提供实时数据,您可以按日期选择。

http://www.nfl.com/liveupdate/game-center/2018090600/2018090600_gtd.json

在盯着第一个链接的输出后,看起来你可以从中获得比赛并从中进行安排,然后使用引用为第二个链接中的完整逐个播放细节选择特定匹配。

下面是一个函数,您可以使用http://www.nfl.com/liveupdate/scores/scores.json将结果导入Google表格并显示所选字段。

要安装和使用它,请阅读以下说明:https://developers.google.com/apps-script/guides/sheets/functions#using_a_custom_function

在工作表中选择一个单元格并输入= ReadNFLResults()

要定期运行脚本(比如每2分钟一次),请按照以下说明操作https://www.quora.com/How-can-I-periodically-run-a-Google-Script-on-a-Spreadsheet

/** Imports NFL results to your spreadsheet Ex: ReadNFLResults()
* @customfunction
*/

function ReadNFLResults(){

  try{

    var res = UrlFetchApp.fetch("http://www.nfl.com/liveupdate/scores/scores.json");
    var content = res.getContentText();
    var json = JSON.parse(content);   

    // Extracts the keys (these change every week)
    var keys = [];
    for(var k in json) keys.push(k);

    // Declare array for results
    var NFLResults =[];

    // Make a Title Row
    NFLResults.push(["Date","Stadium","Time","Qtr","Home Team","Hs1","Hs2","Hs3","Hs4","HsT","Vis Team","As1","As2","As3","As4","AsT"]);

    // Extracts the Games one per line
    for(n=0; n<keys.length; n++){
      var Date = ""+keys[n];
      var Stadium = json[keys[n]]["stadium"];
      var Clock = json[keys[n]]["clock"];
      var TV = json[keys[n]]["media"]["tv"];
      var Qtr = json[keys[n]]["qtr"];
      var Home = json[keys[n]]["home"]["abbr"];
      var Hs1 = json[keys[n]]["home"]["score"]["1"];
      var Hs2 = json[keys[n]]["home"]["score"]["2"];
      var Hs3 = json[keys[n]]["home"]["score"]["3"];
      var Hs4 = json[keys[n]]["home"]["score"]["4"];
      var HsT = json[keys[n]]["home"]["score"]["T"];
      var Away = json[keys[n]]["away"]["abbr"];
      var As1 = json[keys[n]]["away"]["score"]["1"];
      var As2 = json[keys[n]]["away"]["score"]["2"];
      var As3 = json[keys[n]]["away"]["score"]["3"];
      var As4 = json[keys[n]]["away"]["score"]["4"];
      var AsT = json[keys[n]]["away"]["score"]["T"];
      NFLResults.push([Date,Stadium,Clock,Qtr,Home,Hs1,Hs2,Hs3,Hs4,HsT,Away,As1,As2,As3,As4,AsT]);
    }

   // Return array to Google-Sheets
    return (NFLResults);

  }
  catch(err){
      return "Error getting data";  
  }

}

以下是截至2018年9月10日的样本结果:

NFL results in progress


5
投票

试试这个:

http://www.nfl.com/ajax/scorestrip?season=2018&seasonType=REG&week=1

看起来你必须为季节,类型和周指定查询字符串参数,但看起来输出可能是相同的。

© www.soinside.com 2019 - 2024. All rights reserved.