RSS フィードを拾う
使うのは ROME というライブラリ。
http://mvnrepository.com/artifact/rome/rome/1.0
そのまま sbt に
"rome" % "rome" % "1.0"
としておけば利用可能。
コード的に難しいものはなく、
import com.sun.syndication.io.SyndFeedInput import com.sun.syndication.feed.synd.SyndEntry class FeedReader(rssBody:String) { val input = new SyndFeedInput val feed = input.build(new StringReader(rssBody)) import scala.collection.JavaConversions._ lazy val title = feed.getTitle lazy val url = feed.getLink lazy val uri = feed.getUri lazy val entries = feed.getEntries.map(o => o.asInstanceOf[SyndEntry]) }
等としておき、自分のサイトのRSSをざっくり拾ってみたのが
val feed = new FeedReader(body) logger.info("Title : " + feed.title) logger.info("URL : " + feed.url) logger.info("URI : " + feed.uri) feed.entries.foreach(entry => { logger.logger.info("Entry : " + entry.getTitle) })
出力結果
[info] m.a.RssLoader$ - Title : 謎言語使いの徒然 [info] m.a.RssLoader$ - URL : http://white-azalea.hatenablog.jp/ [info] m.a.RssLoader$ - URI : null [info] m.a.RssLoader$ - Entry : WS API でWeb上のデータを引っ張る [info] m.a.RssLoader$ - Entry : フォームエラーをまとめて表示したい [info] m.a.RssLoader$ - Entry : JQuery のJSON系リクエストが想定外でハマった [info] m.a.RssLoader$ - Entry : Form をテンプレート上でバインドする [info] m.a.RssLoader$ - Entry : Playプロジェクトを作成する [info] m.a.RssLoader$ - Entry : Form を使う [info] m.a.RssLoader$ - Entry : Playframework の Form メッセージ多言語化