prodoma Ответов: 0

Google скрипт для резервного копирования текста с веб-страницы в виде электронной таблицы


Мне нужен скрипт google, который будет автоматически создавать резервную копию одной конкретной веб-страницы каждый день на Google Диске и сохранять ее в виде электронной таблицы (или файла xlsx), если это возможно.

Я нашел этот сценарий:
https://ctrlq.org/code/19687-backup-web-pages-daily-google-scripts

и используя это:
http://stackoverflow.com/questions/36849344/save-web-page-as-google-doc-or-pdf-to-drive

успейте сохранить его в формате pdf.

Я также пытаюсь использовать это преобразование mimeType, но я не знаю, как импортировать эту часть в скрипт.
http://stackoverflow.com/questions/22236558/is-there-a-way-to-save-html-text-to-a-file-in-google-drive-using-apps-script

Мне удалось получить не xlsx файлы,а pdf. Я также не знаю, как сделать структуру папок таким образом, чтобы резервные файлы сохранялись только в основной папке резервной копии без создания новых подпапок для каждой новой даты. Не мог бы кто-нибудь помочь мне с этой папкой или проблемой xlsx, или с тем и другим? Я очень мало знаю о кодировании, поэтому буду благодарен за любую помощь.

Что я уже пробовал:

Вот код, который работает сейчас и создает структуру папок и сохраняет их в формате pdf:
var RESOURCE_URL = 'https://news.google.com',
BACKUP_FOLDER_ID = '<THE_ID_OF_THE_FOLDER_WHERE_YOUR_BACKUPS_WILL_LIVE>',
FOLDER_NAME_FORMAT = 'yyyy-MM-dd',
FILE_NAME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss",

// Customize your file extension.
FILE_EXT = '.pdf',

// Folder names are all going to look like this.
now = new Date(),
FOLDER_NAME = Utilities.formatDate(now, 'GMT', FOLDER_NAME_FORMAT),
FILE_NAME = Utilities.formatDate(now, 'GMT', FILE_NAME_FORMAT) + FILE_EXT;

function createBackup() {
var folder = getFolder(FOLDER_NAME);
createBackupFile(folder, FILE_NAME, fetchData());
}

// Ensures we're always working within the backup directory.
function getFolder(name) {
var backupFolder = getBackupFolder(),
    folders = backupFolder.getFoldersByName(name);

if (folders.hasNext()) {
    folder = folders.next();
} else {
    folder = backupFolder.createFolder(name);
}
return folder;
}

// Returns the root folder where our backups exist.
function getBackupFolder() {
return DriveApp.getFolderById(BACKUP_FOLDER_ID);
}

function createBackupFile(folder, filename, data, overwrite) {
if (overwrite) {
    // Technically we're not overwriting here. We're just deleting
    // the duplicates.
    var existingFiles = folder.getFilesByName(filename);
    while (existingFiles.hasNext()) {
        var file = existingFiles.next();
        folder.removeFile(file);
    }
}
}

function fetchData() {
var exportUrl = RESOURCE_URL;
var response = UrlFetchApp.fetch(exportUrl);
var htmlBody = response.getContentText();
var blob = Utilities.newBlob(htmlBody, 'text/html').getAs('application/pdf').setName(FILE_NAME);
return folder.createFile(blob);
}

0 Ответов