Google Apps ScriptでスクレイピングしGoogle Calendarを作る
Yahoo! PipesでスクレイピングしてiCalを吐いていた時代があった
Google Apps Scriptならやりたいことができた
スクレイピング
code:fetch.gs
var html = UrlFetchApp.fetch(url).getContentText()//HTML取得
XMLパーサーはあるけどHTMLパーサーはいい感じのないので正規表現で抽出
正規表現が大きめのテキストでうまく効かないこともあるので行ごとに split したり力技も使う
カレンダーに反映
自分のアカウントの Google Calendar で公開カレンダーを追加する(自分は公開するので)
code:editcalendar.gs
// ID指定で操作するカレンダー取得
var calendar = CalendarApp.getCalendarById(calendarId)
// 日付指定でイベント一覧取得(重複チェックやキャンセルされたイベントの確認用)
var events = calendar.getEventsForDay("2018/4/16")
// イベント追加
var createdEvent = calendar.createEvent(title, start, end,
{ description: description, location: location})
// イベント削除
createdEvent.deleteEvent()
定期的に反映
Apps Scriptで定期実行できる
定期処理はGoogleアカウント単位で20個?くらいが上限っぽいので複数のカレンダーの処理をまとめて行うようにすると大量作成にもある程度たえられる
いい点
iCalだと古い予定は消えるけどGoogle Calendarに登録する方式なら古い予定も残せる
改良してほしい点
XPathとかで取得したい
ページのJavaScriptを解釈したい
作ったもの
結構破綻してきてるのであとでなおしたい…
ミュージシャン
バレーボウイズ ライブスケジュール
柴田聡子 ライブスケジュール
mei ehrara ライブスケジュール
平賀さち枝 ライブスケジュール
青葉市子 ライブスケジュール
tofubeats schedule
沖ちづる ライブスケジュール
大森靖子 ライブスケジュール
花柄ランタン ライブスケジュール
SMOOTHIES ライブスケジュール
カトキット ライブスケジュール
Homecomings ライブスケジュール
台風クラブ ライブスケジュール
カネコアヤノ ライブスケジュール
Predawn ライブスケジュール
1983 ライブスケジュール
四丁目のアンナ ライブスケジュール
Special Favorite Music ライブスケジュール
POP ART TOWN ライブスケジュール
フライデイフライデー ライブスケジュール
池間由布子ライブスケジュール
映画館
出町座上映スケジュール
ライブハウス
livehouse nano schedule
神保町 試聴室 イベントスケジュール
日ノ出町 試聴室その3 イベントスケジュール
心斎橋 CONPASS schedule
VOXhall ライブスケジュール
外 スケジュール
西院ネガポジ ライブスケジュール
京都 CLUB METRO SCHEDULE
Live House Pangea Schedule
木屋町 DEWEY schedule
拾得 ライブスケジュール
店
タワーレコード イベント (全店)
タワーレコード 京都店 イベント
タワーレコード NU茶屋町店 イベント
COTTAGE イベントスケジュール
作りたい
http://iokayumi.com/live/
http://yanagawarecords.com/live/
http://www.misaki-hatori.com/tagged/info
http://www.yamada-e-ryoko.com/
http://fm-kyoto.jp/event/
http://ao-tsuki.com/?page_id=12
http://musicaja.info/category/live-schedule