RSS
RSSリーダーの利用を再開した。RSSフィードを提供していないサイトも多いので、AWS Lambdaでスクレイピングした上で生成している。
AWS Lambdaによるスクレイピング
RSSリーダーが取得しに来たときに、対象サイトのサイトをスクレイピングとRSSフィードの生成をすればいいので、AWS Lambdaを利用している。そのままでは辛かったので、Serverless Frameworkを使っている。
おおまかにいって
- node-fetchで対象サイトを取得
- jsdomでコンテンツを取得
- rssでRSSフィードを生成
という流れになる。
まとめるとこんな感じ。
import fetch from 'node-fetch' import { JSDOM } from 'jsdom' import RSS from 'rss' export default async (event, _context) => { const feed = new RSS({ title: 'ジャンプ+読切シリーズ', site_url: 'https://shonenjumpplus.com/series/oneshot', }) const response = await fetch('https://shonenjumpplus.com/series/oneshot') const body = await response.text() const dom = new JSDOM(body) const items = Array.from( dom.window.document.querySelectorAll('.series-list-item'), (item) => { const url = item.querySelector('a[href]').attributes['href'].value const title = item.querySelector('.series-list-title').textContent return { url, title, description: item.innerHTML, } } ).forEach((item) => feed.item(item)) return { headers: { 'Content-Type': 'application/rss+xml' }, statusCode: 200, body: feed.xml(), } }
生成しているRSSフィード
- Kindleコミック売れ筋ランキング(有料/無料): 鬼滅の刃がずっと支配的なので、新着チェックができるのがありがたい。
- Pixiv Fanbox: 支援してる人のエントリを購読するようにした。HTMLからコンテンツを抜きだすのが大変だったので、JSON APIからRSSフィードを生成している
- Prime Video - 視聴してる番組の新エピソードをチェックできるようにした。
作成中の様子
Plaggerのことを思い出している。
Pixiv Fanboxきびしい。
新着チェックができるようになると、アニメも見る気持ちにもなる。