很明顯,由於正則表達式是錯誤的,你沒有得到任何東西。我不是正則表達式的專家,但我使用基本的字符串操作
var page = UrlFetchApp.fetch("http://services.runescape.com/m=itemdb_rs/Armadyl_chaps/viewitem.ws?obj=19463").getContentText();
var TD = "<td>";
var start = page.indexOf('Current guide price');
start = page.indexOf(TD, start);
var end = page.indexOf('</td>',start);
var number = page.substring (start + TD.length , end);
Logger.log(number);
然後能夠提取多少,我寫了一個函數來K,M等,轉換成相應的倍增係數。
function getMultiplyingFactor(symbol){
switch(symbol){
case 'k':
case 'K':
return 1000;
case 'm':
case 'M':
return 1000 * 1000;
case 'g':
case 'G':
return 1000 * 1000 * 1000;
default:
return 1;
}
}
最後,兩者結合到一起
function pullRuneScape() {
var page = UrlFetchApp.fetch("http://services.runescape.com/m=itemdb_rs/Armadyl_chaps/viewitem.ws?obj=19463").getContentText();
var TD = "<td>";
var start = page.indexOf('Current guide price');
start = page.indexOf(TD, start);
var end = page.indexOf('</td>',start);
var number = page.substring (start + TD.length , end);
Logger.log(number);
var numericPart = number.substring(0, number.length -1);
var multiplierSymbol = number.substring(number.length -1 , number.length);
var multiplier = getMultiplyingFactor(multiplierSymbol);
var fullNumber = multiplier == 1 ? number : numericPart * multiplier;
Logger.log(fullNumber);
}
當然,不做事的最佳方式,但它的工作原理。
要獲取該值,請查看此[視頻](http://www.youtube.com/watch?v=EXhmF9rjqP4)並瞭解如何從網站中刮取文本。從電子表格中,您可以使用函數'= SUBSTITUTE(T(A1),「k」,「00」)來處理該值。' – Jacobvdb 2013-05-09 02:37:13
是的,但我想通過谷歌應用程序腳本來做到這一點,用定時器每X分鐘編號。 – Aaron 2013-05-09 03:02:13
我沒有試過這個,但是也許你可以添加一個[時間驅動的觸發器](https://developers.google.com/apps-script/execution_time_triggers?hl=en)到電子表格中,並刷新刷新結果,您可以在任何其他GAS中閱讀此電子表格。 – Jacobvdb 2013-05-09 03:07:33