##RSS
var rss = XmlService.getNamespace('http://purl.org/rss/1.0/')
var dc = XmlService.getNamespace('dc', 'http://purl.org/dc/elements/1.1/')
function readRss(url) {
var sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName('シート1')
// フィードを取得
var response = UrlFetchApp.fetch(url).getContentText()
// XMLをパース
var xml = XmlService.parse(response)
var root = xml.getRootElement()
var items = root.getChildren('item', rss)
// 読み込んだデータをスプレッドシートに出力
sheet.clear()
for (var i = 0; i < items.length; i++) {
var title = items[i].getChild('title', rss).getText()
var link = items[i].getChild('link', rss).getText()
var date = Utilities.formatDate(new Date(items[i].getChild('date', dc).getText()), 'Asia/Tokyo', 'yyyy/MM/dd')
sheet.getRange(i + 1, 1).setValue(title)
sheet.getRange(i + 1, 2).setValue(link)
sheet.getRange(i + 1, 3).setValue(date)
}
}
※SHEET_IDにはスプレッドシートのIDをつかってください。
##atom
ここではGoogle Newsを例にとります。
function getATOM(query) {
var sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName('シート2')
var feedURL= 'https://news.google.com/news/?hl=ja&ned=us&ie=UTF-8&oe=UTF-8&output=atom&num=30&hl=ja&gl=JP&ceid=JP:ja&q=' + query
var xml = UrlFetchApp.fetch(feedURL).getContentText()
var document = XmlService.parse(xml)
var root = document.getRootElement()
var atom = XmlService.getNamespace('http://www.w3.org/2005/Atom')
var entries = root.getChildren('entry', atom)
sheet.clear()
for (var i = 0; i < entries.length; i++) {
var title = entries[i].getChild('title', atom).getText()
var link = entries[i].getChild('link', atom).getAttribute('href').getValue()
var updated = entries[i].getChild('updated', atom).getText()
var date = Utilities.formatDate(new Date(updated), 'Asia/Tokyo', 'yyyy/MM/dd HH:mm')
sheet.getRange(i + 1, 1).setValue(title)
sheet.getRange(i + 1, 2).setValue(link)
sheet.getRange(i + 1, 3).setValue(date)
// 画像があれば抽出
var content = entries[i].getChild('content', atom).getText()
var start = content.indexOf('img src="')
if (start >= 0) {
var end = content.indexOf('"', start + 9)
var imageUrl = content.substring(start + 9, end)
sheet.getRange(i + 1, 4).setValue('https:' + imageUrl)
} else {
sheet.getRange(i + 1, 4).setValue('');
}
}
}