如何获得谷歌网站的所有页面,有许多页面

问题描述 投票:0回答:1

我有一个谷歌网站,我使用 谷歌应用脚本 来获取网站的所有页面并将其数据导出为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获取所有的页面?

google-apps-script google-sites
1个回答
1
投票

目前,我能够绕过这个问题,通过使用的是 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;
}
© www.soinside.com 2019 - 2024. All rights reserved.