2021/02/04

セキュリティ情報の集め方(転載)~RSS を配信していないサイトの対策(Feed43)~


セキュリティ情報の集め方 ~しなもんの場合~

ぜひウォッチしたいと思う有用な web サイトのすべてがRSSを配信しているわけではありません。

ブックマークしておいて定期的に見るというのも手ですが、できれば他のサイトと同様にRSSリーダーで管理したいものです。

そんな方には "Feed43" をお試しになることをお勧めします。必ずうまくいくわけではありませんが、これで綺麗にRSSを生成できる場合も多いです。

feed43.com

ちょっと長くなりますが便利な方法なのでこの場でご紹介します。

ここでは有用でありながらRSSを設定していないサイトの例としてセキュリティニュースサイト "Security Next" を例に説明します。

私が知る限りTwitterアカウントも持っておらず、追いかけるのに工夫が必要なニュースサイトです。

1. どのページのフィードを取るか決めます。記事一覧、新着情報一覧などが掲載されているページが適しています。

 今回は「ニュース関連記事の一覧」で生成することにします。

 新着記事のタイトルとその URL の取得を目指します。 

2. Feed43 にアクセスし、"Create your first RSS feed" ボタンをクリックします。 

f:id:am7cinnamon:20210115114150p:plain

"Create your first RSS feed" ボタンをクリック

3. "Address" に Security Next の URL、”Encoding” に "utf-8" (大文字でも可) と入力し、"Reload" ボタンを押します。

f:id:am7cinnamon:20210115120228p:plain

 なお Encoding は他のサイトでは異なるものが使われている可能性があります。そのページのソースを見て、meta 要素を確認するのが確実です。 

f:id:am7cinnamon:20210115120251p:plain

こんな感じで設定されています。細部はサイトにより異なります。 

4. 正しく指定できていれば "Page Source:" にそのページのソースコードが現れます。

 文字化けしている場合は Encoding を正しく設定できていません。

 

f:id:am7cinnamon:20210115120443p:plain

5. 取得したいのは新着記事のタイトルと URL です。

 これらを含む部分をソースコードから見つけ出します。

 "Page Source:" を見てもよいのですが、画面が小さくて探しにくいので、ブラウザの機能で元のページのソースを表示して探すといいです。

 最新記事のタイトルなどで検索すると簡単です。 

f:id:am7cinnamon:20210115120942p:plain

Security Next のニュース関連記事の一覧の場合、上の画像に示すのがその部分になります。

フォーマットは一緒で、「日付」「URL」「タイトル」だけが異なる繰り返しであることがわかります。 

6. ここが一番難しい部分です。

 5. で特定した繰り返し部分を 1つ取り出して、

 ・フォーマット以外の可変部分 (タイトルなど) を"{%}" で置き換える

 ・ソース中に改行がある場合は、その箇所に "{*}" を追加する

 の 2つのルールに従い編集して "Item (repeatable) Search Pattern:" に入力します。

 場合によっては当該部分がかなり長いこともあるので、別にテキストエディタなどを用意して編集はそちらで行うと楽です。 

f:id:am7cinnamon:20210115121854p:plain

今回は改行がなかったので、「日付」「URL」「タイトル」を {%} に置き換えただけで済みました。 

この状態で "Extract" ボタンを押します。 

7. 6. での設定がうまくいっていると "Clipped Data:" に "{%1} = ** {%2} = **...” という繰り返しが表示されます。

 6. で置き換えた {%} が順番に {%1}、{%2}、……になります。

 うまく抽出できていない場合は 6. に戻って試行錯誤することになります。ページの構造上どうやってもうまくいかないこともありますが…… 

f:id:am7cinnamon:20210115122137p:plain

うまく抽出できた

8. Feed Title などを適宜編集します。

 特にこだわりがなければそのままでもいいでしょう。 

f:id:am7cinnamon:20210115122825p:plain

9. 取得するフィードの 1件 1件ごとのタイトルと URL を設定します。

 今回は、"Item Title Template:" は個別記事のタイトルにあたる "{%3}"、"Item Link Template:" は個別記事の URL にあたる "{%2}" にそれぞれ設定しました。

 Item Title に日付と記事タイトルを組み合わせて "{%1}{%3}" と設定する、といったこともできます。 

f:id:am7cinnamon:20210115123442p:plain

10. "Preview" ボタンを押します。

 うまく各記事のタイトルと URL が取得できて一覧になっていれば成功です。

 

f:id:am7cinnamon:20210115123725p:plain

11. "Feed URL" が完成したRSSフィードの URLです。 

f:id:am7cinnamon:20210115124023p:plain

完成!

これをコピーして自分が使っているRSSリーダーに設定します。 

f:id:am7cinnamon:20210115124428p:plain

無事購読できました。

【バックアップ】

セキュリティ情報の収集方法について