我试图用Google脚本编写代码,将显示在url https://coinmarketcap.com/上的数据转储到Google中(比如从A1开始)。不只是一个符号的数据,而是显示在这个页面上的所有符号。具体来说,我正在寻找‘符号’名称‘价格’'market_cap‘的数据。
API文档如下:https://coinmarketcap.com/api/documentation/v1/#operation/getV1CryptocurrencyListingsLatest
我过去经常使用API连接器来完成这个任务,但是我宁愿使用几行代码。我花了几个小时阅读有关搜索结果的不同方法,但它们要么适合于单个符号,要么涉及太多的请求。
我的密码在下面。我没有收到错误,但它也没有返回任何数据。我相信我需要调整'setValue‘,但我不知道如何去做。
会很感激你的帮助。谢谢!
function coin_price() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Coins')
var requestOptions = {
method: 'GET',
uri: 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?aux=cmc_rank',
qs: {
start: '1',
limit: '5000',
convert: 'USD',
},
headers: {
'X-CMC_PRO_API_KEY': 'MY API KEY'
},
json: true,
gzip: true,
};
var url = `https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?aux=cmc_rank`;
var result = UrlFetchApp.fetch(url, requestOptions);
var txt = result.getContentText()
var d = JSON.parse(txt);
sheet.getRange(100,1).setValue(d.data.market_cap)
}
发布于 2022-02-16 17:44:34
建议
也许您可以尝试下面这个经过调整的脚本:
剧本:
function coin_price() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Coins')
var requestOptions = {
method: 'GET',
uri: 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?aux=cmc_rank',
qs: {
start: '1',
limit: '5000',
convert: 'USD',
},
headers: {
'X-CMC_PRO_API_KEY': 'API_Key'
},
json: true,
gzip: true,
};
var url = `https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?aux=cmc_rank`;
var result = UrlFetchApp.fetch(url, requestOptions);
var txt = result.getContentText()
var d = JSON.parse(txt);
var dSymbol = [];
var name = [];
var price = [];
var marketCap = [];
for(i=0; i<d.data.length; i++){
marketCap.push([d.data[i].quote.USD.market_cap]);
dSymbol.push([d.data[i].symbol]);
name.push([d.data[i].name]);
price.push([d.data[i].quote.USD.price])
}
//getRange structure (starting row, start col, total number of rows,total number of cols)
sheet.getRange(1,1,dSymbol.length,1).setValues(dSymbol); //Symbol in Col A (start col #1)
sheet.getRange(1,2,name.length,1).setValues(name); //Name in Col B (start col #2)
sheet.getRange(1,3,price.length,1).setValues(price); //Price in Col C (start col #3)
sheet.getRange(1,4,marketCap.length,1).setValues(marketCap); //Market Cap in Col D (start col #4)
}
抽样结果:
参考资料:
https://stackoverflow.com/questions/71142998
复制相似问题