Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Google Apps Scripts中查询在线数据库?

如何在Google Apps Scripts中查询在线数据库?
EN

Stack Overflow用户
提问于 2017-10-30 00:47:45
回答 1查看 176关注 0票数 0

我正在尝试使用谷歌应用程序脚本和谷歌工作表,基本上是每次NHL球队比赛时自动更新统计信息的谷歌工作表。如何在Google Apps Scripts环境中查询nhl.com online数据库?例如,我感兴趣的统计数据是某个团队的总分。如何从Google Apps Scripts中的nhl.com获取整数值?

EN

回答 1

Stack Overflow用户

发布于 2017-10-30 05:50:12

您需要使用GAS的服务UrlFetchApp来发送http请求和接受响应。

您的代码可能如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 function getMatchResults() {
    var options = {
        'method': 'get',
        //and any other additional parameters you might need
    };
    var url = 'http://www.nhl.com/stats/team?aggregate=0&gameType=2&report=teamsummary&teamId=24&reportType=season&seasonFrom=20172018&seasonTo=20172018&filter=gamesPlayed,gte,1&sort=points%22'
    var results = UrlFetchApp.fetch(url, options); 
    Logger.log(results);
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    //further on goes your code to actually save the results into your sheet
}

如果您需要定期运行此函数,则需要设置一个时间驱动触发器,如here所述。

更新:在你的评论之后,有第二部分。一开始,我假设nhl.com有某种可以返回JSON格式的响应的API,但事实并非如此。这就是为什么你会在JSON.parse上得到这个错误--返回的结果不是一个JSON对象,而是一个超文本标记语言网页。

因此,您的任务变得更加棘手:您可以尝试抓取页面并从html中获取结果,或者使用第三方API,如MySportFeeds。您还可以看到此Quora discussion

如果你使用MySportFeeds,它似乎是免费的,上面的函数可能看起来像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function getMatchResults() {
  var headers = {
    'Authorization': 'username:password',
  };
  var options = {
    'method': 'get',
    'headers': headers,
    //and any other additional parameters you might need
  };
  var url = 'https://www.mysportsfeeds.com/api/feed/pull/nfl/2016-2017-regular/scoreboard.json?fordate=20161211'
  var results = UrlFetchApp.fetch(url, options); 
  Logger.log(results);
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  //further on goes your code to actually save the results into your sheet
}

更新#2:

根据另一条评论:)你实际上有3个选择:

  • 抓取整个页面(有关这一点,请参阅wikipedia article )并抓取一些第三方API (上面的MySportFeeds)
  • 查看页面源代码并找到它从何处加载数据-请参阅this answer了解更多详细信息。

使用最后一个选项,代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function getMatchResults() {
  var headers = {
    "Origin": "http://http://www.nhl.com/"
  };
  var options = {
    'method': 'get',
    //and any other additional parameters you might need
  };
  var baseUrl = 'http://www.nhl.com/stats/rest/individual/team/basic/game/teamsummary'
  var urlParameters = '?cayenneExp=teamId=23';
  var url = baseUrl + urlParameters;
  var results = UrlFetchApp.fetch(url, options); 
  Logger.log(results);
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  //further on goes your code to actually save the results into your sheet
}

您可以在这里看到http://www.nhl.com/stats/rest/individual/team/basic/game/teamsummary?cayenneExp=返回的统计信息,并且在cayenneExp参数中,您应该指定额外的设置(比如teamId=23,在本例中是温哥华)。这是它在devtools中的样子:http://take.ms/fSH7H

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47006777

复制
相关文章
让控件填满整个页面
一般用于左侧的Frame,比如左侧放了一个树控件。用<body onload="FillPage('FlyTreeView1')" scroll=no>调用即可。     <script language="javascript" type="text/javascript">       //将ctlid控件填充满当前的页面,多用于frame中       function FillPage(ctlid)       {         var obj=document.getElementById(ct
用户1075292
2018/01/23
9470
让ZeGraph在X方向上填满
默认的效果是 希望能够在x方向上填满,两边不留。尝试出来的方法是:用zg1.GraphPane.XAxis.Scale.Max 和Min来设置,而且必须在画完图后设置。 zg1.GraphPane.C
用户1075292
2018/01/23
4840
让ZeGraph在X方向上填满
wpf wrapPanel居中并从左到右排列
参考文章.net – WPF – 如何将WrapPanel中的所有项目居中? – Thinbug
全栈程序员站长
2022/09/15
3760
Lua游戏开发参考资料收集
List of game engines that use lua: 2D Agen (Lua; Windows) Blitwizard (Lua; Windows, Linux, Mac) Cocos2d-x (C++/Lua/JS; Windows, Linux, Mac; iOS/Android/BlackBerry) Corona (Lua; Windows, Mac; iOS/Android) EGSL (Pascal/Lua; Windows, Linux, Mac, Haiku) G
meteoric
2018/11/19
8820
Video里的poster填满窗口的方案
用Video播放视频,视频能自适应屏幕大小,但是它的Poster(海报封面)继承了原尺寸比例,无法自动缩放或拉伸,不得技巧的话,很难处理。
IT晴天
2018/08/20
2K0
VUE.DRAGGABLE实现从左到右拖拽功能
1、左边【一级、二级、三级】字样是不能拖拽的,【item1、item2…】可以拖拽
青梅煮码
2023/03/02
1.2K0
设置图片的透明度从左到右渐变
一、设置图片的透明度从左到右渐变 /** * 设置图片的透明度从左到右渐变,使右边缘平滑过渡(注意只跟着x坐标变) * * @param num 范围为0-100,0为全透明,100为不透明 */ public static Bitmap getTransAlphaBitmap(Bitmap sourceImg, float num) { if (sourceImg == null) { return null;
用户9854323
2022/06/25
1.8K0
Excel小技巧40:自动填满单元格
在Excel中,可以使用你已经输入到单元格中的数据填满整个单元格,并且会随着单元格尺寸的调整而自动填充,如下图1所示。
fanjy
2020/06/28
3K0
Excel小技巧40:自动填满单元格
15种手机游戏引擎和开发工具介绍
工欲善其事,必先利其器。对移动游戏开发者来说,高效实用的开发工具必不可少。近日,英国著名产业杂志《Develop》刊出了一篇文章,作者艾伦·李在文中推荐了15种移动游戏开发工具,从游戏引擎,到音效制作、推广等工具都有涉及。以下为原文主要内容编译。
全栈程序员站长
2022/08/31
3.3K0
15种手机游戏引擎和开发工具介绍
RPA 实战:让小姐姐填满你的硬盘(上)
首先打开另一个小网站 -- https://www.hwtelcloud.com/products/rpa,下载【设计器】,并进行使用激活;下载【执行器】,让程序自己动;此外还需下载浏览器驱动和安装浏览器插件。关于软件的下载安装等此处就不进行讲解,相信您能搞定!
胡琦
2021/09/09
2K1
7个最优秀的手机游戏引擎
随着智能手机成为主要的游戏平台,移动游戏引擎变得越来越流行。 下面将介绍7个最优秀的手机游戏引擎。
全栈程序员站长
2022/09/06
5.5K0
设计分享|基于单片机的从左到右流水灯
51单片是一种低功耗、高性能CMOS-8位微控制器,具有8K可编程Flash存储器,使得51系列单片机为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
电子工程师成长日记
2022/08/09
1.1K0
设计分享|基于单片机的从左到右流水灯
设计分享|基于单片机的从左到右流水灯
51单片是一种低功耗、高性能CMOS-8位微控制器,具有8K可编程Flash存储器,使得其为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
电子工程师成长日记
2022/12/14
8840
设计分享|基于单片机的从左到右流水灯
Platform SDK、Windows SDK简介
Platform SDK及Windows SDK是由微软公司出品的一个软件开发包,向在微软的Windows操作系统和.NET框架上开发软件和网站的程序员提供头文件、库文件、示例代码、开发文档和开发工具。
全栈程序员站长
2022/09/05
3.8K0
Java开发SDK详解->SDK开发
File ——》 Project Structure ——》 Project Settings ——》 Artifacts ——》 右栏左上角+ ——》JAR ——》 From Modules with dependencies——》OK
全栈程序员站长
2022/09/08
5.6K0
填满Github的绿色格子用我做的VSCode插件-Auto Commit
如果提交到其他分支,提交记录不会显示在绿色的格子里面,合并分支之后 才会显示在绿色格子里面。
OBKoro1
2020/10/27
1.4K0
填满Github的绿色格子用我做的VSCode插件-Auto Commit
SDK之我理解的SDK
这是SDK系列的倒数第二篇,其实应该是第一篇来着。最近发现写了两个月还没写完,进度有点慢,这几天抓紧时间写完。不过随即发现当时完全没想错,这部分还是最难写。先写一个成稿,后续想到更多的内容逐步补充和更新吧。 什么是SDK SDK即软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)一般都是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。 ​上面这是百度百科对SDK的定义。但是现实中我们开发的SDK更多的是Seco
子勰
2018/05/22
2.7K0
[大家的项目] alipay_sdk_rust,Alipay sdk in rust 支付宝支付 SDK
alipay官方没有rust sdk,本人自己实现了一个,已经生产环境可用。基于gostd的http模块。
MikeLoveRust
2022/11/28
1.7K0
[大家的项目] alipay_sdk_rust,Alipay sdk in rust 支付宝支付 SDK
教你如何填满过去一年的Github的绿色格子-Auto Commit
如果提交到其他分支,提交记录不会显示在绿色的格子里面,合并分支之后 才会显示在绿色格子里面。
OBKoro1
2020/01/13
3.6K0
点击加载更多

相似问题

corona sdk scrollableView

12

Corona SDK旋转

11

Corona sdk + xmpp

12

ScreenShot (CORONA SDK)

22

Corona SDK SplashScreen

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文