希望這里的人可以幫助,
過去幾年我一直在提取玩家道具資料,并且效果很好,但今年他們在下拉選單中添加了更多選擇,并且在超過 5 個游戲時出現錯誤“url 內容中的資源超出最大大小” .
我們使用的函式是 =importhtml("https://www.scoresandodds.com/nba/props", "table",1)
如果可能的話,希望有人能指出我正確的方向以使其再次作業。我對腳本不太熟悉,從我收集到的內容來看,這是解決此錯誤的唯一方法。
感謝您的時間!
uj5u.com熱心網友回復:
在您的情況下,如何將 Sheets API 與 Google Apps Script 結合使用?當使用 Sheets API 的 pasteData 請求時,可以決議 HTML 表格并將其放入電子表格中。當這反映到腳本時,它變成如下。
示例腳本:
請將以下腳本復制粘貼到谷歌電子表格的腳本編輯器中,并在高級谷歌服務中啟用 Sheets API。并且,請myFunction在腳本編輯器中運行。通過這種方式,檢索到的表被放置到作業表中。
function myFunction() {
const sheetName = "Sheet1"; // Please set the destination sheet name.
const url = "https://www.scoresandodds.com/nba/props";
const html = UrlFetchApp.fetch(url).getContentText();
const table = html.match(/<table[\s\S\w] ?<\/table>/);
if (table) {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const requests = { requests: [{ pasteData: { html: true, data: table[0], coordinate: { sheetId: ss.getSheetByName(sheetName).getSheetId() } } }] };
Sheets.Spreadsheets.batchUpdate(requests, ss.getId());
return;
}
throw new Error("Table cannot be retrieved.");
}
參考:
- 方法:電子表格.batchUpdate
- 粘貼資料請求
uj5u.com熱心網友回復:
試試這個腳本
function importTableHTML(url) {
var html = '<table' UrlFetchApp.fetch(url).getContentText().match(/(?<=\<table).*(?=\<\/table)/g) '</table>';
var trs = [...html.matchAll(/<tr[\s\S\w] ?<\/tr>/g)];
var data = [];
for (var i=0;i<trs.length;i ){
var tds = [...trs[i][0].matchAll(/<(td|th)[\s\S\w] ?<\/(td|th)>/g)];
var prov = [];
for (var j=0;j<tds.length;j ){
donnee=tds[j][0].match(/(?<=\>).*(?=\<\/)/g)[0].replace(/ /g,' ');
if(donnee.indexOf("</a>")>-1){
prov.push(donnee.match(/(?<=\>).*(?=\<\/)/g)[0]);
}else{
prov.push(donnee);
}
}
data.push(prov);
}
return(data);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/355709.html
上一篇:公式結果輸出錯誤的范圍數字
