前回の記事でRSSリーダーをレンタルサーバーに設置する方法を書きました。この流れでRSSを配信していないサイトでも更新内容を知るために、セルフホスティング型のRSS作成サービスの RSS-Bridge をレンタルサーバーに設定する方法をまとめていきます。
目次
RSS-Bridgeとは
RSS-Bridgeは、RSSフィードを提供していないサイトの更新情報をRSSフィードとして出力するためのオープンソースプロジェクトです。このツールを使うことで、RSSフィードが存在しないウェブサイトのコンテンツを追跡し、RSSリーダーなどで閲覧することが可能になります。
どのサイトでも対応しているわけではなく、Twitter、YouTube、Reddit、GitHubなど、あらかじめ Bridge として対応しているクラスファイルを導入する必要があり、今現在で456件のBridgeを使用する事ができます。
番外的にはCSSセレクターやXPathを指定することでもRSS化をしてくれたり、Seleniumサーバーを指定することもできるのでJavaScriptレンダリングをする必要があるサイトでもスクレイピングしてRSS化することができます。
ブラウザ操作が基本ですが、コマンドラインの実行にも対応しており、RSS(Atom)形式以外にもJsonやHtml形式に対応しています。
レンタルサーバーに導入する方法
実行には以下の環境が必要です。
- PHP 7.4 (or higher)
openssl
extensionlibxml
extension (enabled by default, see PHP Manual)mbstring
extensionsimplexml
extensioncurl
extensionjson
extensionfilter
extensionzip
(for some bridges)sqlite3
extension (only when using SQLiteCache)
これらは基本的なLAMP環境で用意されている事が多く、一般的なレンタルサーバーに導入する事が可能です。
今回は私がいつも使っているエックスサーバーに導入していきます。
cd path/to/public
git clone https://github.com/RSS-Bridge/rss-bridge.git rss-bridge/
cd rss-bridge
cp config.default.ini.php config.ini.php
導入方法としては「置くだけ」で完了します。
残りはコピーした設定ファイルである config.ini.php
を編集する事で、自分が使いやすいように変えていきましょう。
例えば、以下のように設定することで照準のBridgeでは17種しか使えないが、456種使えるようになります。
[system]
enabled_bridges[] = *
認証機能を活用する
置くだけで公開する事ができる RSS-Bridge ですが、全世界で使用することができるのはあまり良いことではありません。ご自分では意図していないが、対象のサービスへのアタックをするために使われる危険性もあります。
これを防ぐためにあらかじめ認証機能を導入する事を推奨します。
公式のドキュメントで認証方法のサンプルが記載されているのでこちらに沿っていくとBasic認証が推奨されています。
設定ファイルにbasic認証を記載する事ができるのですが、アクセスするたびにbasic認証の設定の入力を求められて使えないため(私の使い方が間違っているのかも?) .htaccess を使用したbasic認証を設定しましょう。
終わりに
以上、RSS-Bridge の導入方法でした。
RSSを配信していないサイトの更新チェックには はてなアンテナ が有名ですが、自分で細かく調整できるのはメリットが大きいと感じました。
対応していないサイトでもXPathなどを記載すれば取得できるようになるので、スクレイピングにも活用することができます。Seleniumを使った活用方法もできますし、Bridgeのクラスファイル1つ書くだけで使えるのはプログラマーとしても魅力が大きいです。
RSSを作成した後に結果を確認する方法として RSSリーダーを導入する記事についてはこちらでまとめています。興味がありましたがご覧ください。
今回もお疲れ様でした。
コメントを残す