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:お察し下さい