我有一个谷歌网站,我使用 谷歌应用脚本 来获取网站的所有页面并将其数据导出为JSON格式。
我使用的是 getAllDescendants 函数的代码与此类似。
function getAllSitePages(site) {
var result = [], i = 0;
while(true) {
var pages = site.getAllDescendants({start: i});
if(!pages || pages.length == 0) break;
result = result.concat(pages);
i += pages.length;
};
return result;
}
但这只能让我得到第一个 891
(?!)页。如果我的网站有大约1000个页面,有什么方法可以用Sites Service获取所有的页面?
目前,我能够绕过这个问题,通过使用的是 getChildren
函数来代替(因为我目前没有任何页面(包括root)有超过800个直接的子代)。
function getAllSitePages(root, result) {
result = result || []
var start = 0;
while (true) {
var pages = root.getChildren({ start });
if (!pages || pages.length == 0) break;
result.push(...pages);
pages.forEach(page => getAllSitePages(page, result));
start += pages.length;
};
return result;
}