Looker の記事一覧|DevelopersIO 」が更新されたら Slack に POST したかったのです。トップページ ならフィードが配信されているけど、これだと多すぎます。

ノンエンジニアである会社の同僚が https://feed43.com/ で作っているらしいので、試してみました。

結果的にこのフィードを作れましたがめっちゃ面倒くさかったので、記録として残します。同僚すごい…。
https://feed43.com/developersio-looker.xml

https://feed43.com/ の “Create your first RSS feed” をクリックして、指示に従って作ります。

今回は https://dev.classmethod.jp/tags/looker/ です。入力し Reload します。

Feed43 Step1

HTML が取得され、“extraction rules” の入力を促されるのでそうします。

Feed43 Step2a

予想はしていましたが、これがめちゃめちゃ大変で時間がかかりました。

  1. HTML 構造を理解する
  2. 記事一覧に相当する HTML をテキストエディタに貼り付ける
  3. 記事の URL やタイトルなど、取り出したい箇所を {%} で置換し、Extract する
  4. Extract できたら儲けもの。不要な HTML を {*} で置換して、少しずつ小さくしていく

最終的にこのルールを作ることが出来ました。

<div class="post{*}"{*}>{*}<a href="{%}" class="link"{*}>{*}<h3 class="post-title"{*}>{%}</h3>{*}</a>{*}<p class="date"{*}>{%}</p>{*}</div>

{} はワイルドカードです。関係ない HTML はこれで省略しましょう。スペースや改行、HTML コメントなども削除したら {} にする必要はあるかも。

{%} は正規表現の \1, \2 みたいなやつです。上の例だと 3 つあるので、あとで {%1}, {%2}, {%3} として取り出すことが出来ます。

取り出せた様子です。

Feed43 Step2b

あとはフィードの output format を設定するだけです。

Feed43 Step3a

Preview ボタンをクリックすると、無事フィードが生成されました。

Feed43 Step3b

任意のファイル名に変換することが出来ます。今回は developersio-looker にしました。

Your feed is ready!

そして、私はこのあとハマりました…。Feed43 のアカウントを作って作業したためか、上の Make this feed private に User Name と Password が設定されてしまい、Slack から購読することが出来ませんでした。両方とも空にして Set すれば良いみたいです。

Slack やフィードリーダーでは単純に https://feed43.com/developersio-looker.xml を購読すれば良いです。

この URL をブラウザで開くと https://node2.feed43.com/developersio-looker.xml にリダイレクトされますが、こちらは変更され得ると思うので、購読してはいけません。

変更され得ると言えば、サイトの HTML 構造も変わり得るので、いつかは壊れるでしょう。スクレイピングあるあるです。そしたらフィード経由で分かるのかしら?FAQ ページ には載ってませんでした。

検索すると似たような記事は見つかります。でも「めちゃめちゃ大変」なことが書かれていなかったので、今回記事を書きました。えぇ…

追記(2021-08-17):
https://dev.classmethod.jp/tags/looker/ のフィードは https://dev.classmethod.jp/feed/?tag=looker にありました。その後書いた会社ブログ記事へのリアクション で知りました。ありがとうございます。