Yahoo!ニュース・トピックス - サイエンス
から、RSSのファイルを取得してきます。
$ curl http://news.yahoo.co.jp/pickup/science/rss.xml > rss.xml
$ cat rss.xml | nl
1 <?xml version='1.0' encoding='UTF-8'?>
2 <rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" version="2.0">
3 <channel>
4 <title>Yahoo!ニュース・トピックス - サイエンス</title>
5 <link>http://headlines.yahoo.co.jp/hl?c=c_sci</link>
6 <description>Yahoo! JAPANのニュース・トピックスで取り上げている最新の見出しを提供しています。</description>
7 <language>ja</language>
8 <pubDate>Mon, 14 Sep 2015 23:44:57 +0900</pubDate>
9 <item>
...
15 <item>
16 <title>太陽電池の集光 紙細工で進化</title>
17 <link>http://news.yahoo.co.jp/pickup/6174339</link>
18 <pubDate>Mon, 14 Sep 2015 15:19:55 +0900</pubDate>
19 <enclosure length="133" url="http://i.yimg.jp/images/icon/photo.gif" type="image/gif">
20 </enclosure>
21 <guid isPermaLink="false">yahoo/news/topics/6174339</guid>
22 </item>
...
68 </item>
69 </channel>
70 </rss>で、頭と尻尾を取りのぞき、rss2として保存し直します。
$ cat rss.xml | awk "(NR >= 9) && (NR <= 68)" > rss2.xml
これを、FSに”\n”と区切りを設定してあげて二番目の記事を表示します。
$ cat rss2.xml | awk 'BEGIN {FS="</item>\n"; RS=""} {print $2}'
<item>
<title>太陽電池の集光 紙細工で進化</title>
<link>http://news.yahoo.co.jp/pickup/6174339</link>
<pubDate>Mon, 14 Sep 2015 15:19:55 +0900</pubDate>
<enclosure length="133" url="http://i.yimg.jp/images/icon/photo.gif" type="image/gif">
</enclosure>
<guid isPermaLink="false">yahoo/news/topics/6174339</guid>頑張って作りこめば、RubyやPython、はてまた外部ライブラリはダメでAwkは大丈夫な環境*1でも、
データをRSSで作っちゃったアプリを使う事ができます。
*1:お察し下さい