Как импортировать RSS-канал в Google App Script - PullRequest
0 голосов
/ 18 мая 2019

Я хочу импортировать RSS-канал в Google App Script и сохранить «заголовок» и «контент» (= основной текст RSS-канала) в отдельных массивах, чтобы я мог изменить их и вывести результат в виде Google Spreadsheet.

В настоящий момент я импортирую RSS-ленту в лист (с = ImportFeed), читаю эти ячейки и сохраняю их в массиве, изменяю их и выводю в новые ячейки. Это работает, но медленно (Google App Script медленно получает данные из Google Sheets).

Если я могу напрямую импортировать RSS-ленту в скрипт, это увеличивает скорость процесса. Но проблема в том, что я не знаю как и не могу найти никакой полезной информации (я учу себя).

Может быть, есть кто-то, кто может мне помочь, спасибо!

1 Ответ

0 голосов
/ 11 июня 2019

Попробуйте это:

function test() {
var sheet = SpreadsheetApp.openById("KEY").getSheetByName('SHEET_NAME');
// create a list of existing "IDs" for each post / comment, to avoid adding duplicates in the sheet
var temp = sheet.getRange(1, 6, sheet.getLastRow()).getValues();
var existingIds = [];
for (var i in temp) {
existingIds.push(temp[i][0]);
}

var feed = UrlFetchApp.fetch("RSS_URL.XML").getContentText();
feed = XmlService.parse(feed);
var items = feed.getRootElement().getChild("CHILD_NAME").getChildren("ITEM");

for (var i in items) {
var link = items[i].getChild("ITEM").getValue();
// avoid adding duplicates
if (existingIds.indexOf(link) != -1) continue;

var ITEM = items[i].getChild("ITEM").getValue(); 
var ITEM = items[i].getChild("ITEM").getValue(); 
var ITEM = items[i].getChild("ITEM").getValue(); 
var ITEM = new Date(items[i].getChild("ITEM").getValue()); 

sheet.appendRow([ITEM, ITEM, ITEM, ITEM, ITEM]);
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...