googlesheet使用sina股票接口
前几天说到,sina股票接口不好使了,回显都是Kinsoku jikou desu!
昨天有网友说VBA或者python改写一下还可以用,但是我看网上没有现成的googlesheet的方案。于是,今天我认真读了一下google app script里面相关函数的帮助文档,学习正确的参数写法,成功在googlesheet上抓取数据。
方法如下:
1 表格里打开 app script
2 新建一个脚本sina.js
function myFunction() {
var app = SpreadsheetApp;
var url ="http://hq.sinajs.cn/list=sh600519,sh600900";
var options = {
'method' : 'get',
'headers' : {
"Referer": "http://vip.stock.finance.sina.com.cn"
}
};
var response = UrlFetchApp.fetch(url,options);
copySheetsina = app.getActiveSpreadsheet().getSheetByName("发布表");
copySheetsina.getRange("A1").setValue(response.getContentText("GBK"));
}
脚本新建了一个函数 myFunction(函数名可以自己取) ,变量url就是原来要抓数据的地址(多个代码可以逗号分隔写一起),这个根据需求自己写。代码里“发布表”是我要导入数据的sheet的名称,这个也需要你自己修改,改成sheet1,sheet2什么的。”A1″是指定的导入数据的单元格,也可以根据需要自己改。别的就不用改了。
3 新建一个定时器脚本timetigger.gs
function createTimeDrivenTriggers() {
ScriptApp.newTrigger("myFunction")
.timeBased()
.everyMinutes(5)
.create();
}
.everyMinutes(5) 表示每五分钟执行一次。改成10么,就是每10分钟执行一次,根据需要自己改。
4 上面两个脚本写好以后,保存,再分别运行点几次,会弹出窗口需要授权访问,就是登陆一下自己google账号即可。
5 现在每5分钟,最新的数据就会抓到“发布表”的”A1”单元格了,但是格式还要处理一下。
6 在B2单元格里写
=TRANSPOSE(split(A1,";"))
在C2单元格里写
=split(B2,",")
这样数据就规整好了,后面就根据需要自己取数据吧。
7 股票期货外汇数据代码规则比较容易,期权的代码规则可以看下面两篇文章
感谢朋友发文,在你基础上稍微研究了下,改成了适合自己的。节省了我不少时间,非常感谢!
:-)
感谢。有两个小错误,一是「”」写错了,二是B2应该是C2。像我完全不懂的代码的,试了好久才搞定。
谢谢,文章里改过来了