酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Praggerを使って携帯百景のRSSから画像を保存してみたよ

会社に行ってるとネットワークの使用利用が出来ず、Webサイトに上がっている写真を見逃す事が多々あります。大抵帰宅後ネットに触れる時はテレホタイムに入っているので、写真がアップロードされているWebサイトにアクセスするの自体が一苦労です。

帰ってからローカルのフォルダを見れば、最新の写真がみたいのでpraggerしてみました。一応汎用的に使えるように作ったつもりですが、praggerとかpipeの作法をよく理解していないのでお目汚しの部分があるかもしれませんがご了承下さい。

とりあえず、携帯百景の特定のユーザ(例ではexample)がアップロードした画像を、ローカルのフォルダ(例ではc:/example_picture/)へダウンロードするyamlを書いてみました。

Praggerのインストール

yapraが無いと始まらないので、Praggerのインストールについてはこちら(それPraggerで出来るよ! - 酢ろぐ!)をご参照下さい。


RSS::load

- module: RSS::load
  config:
    url: "http://movapic.com/feed/user/example"

指定したURLからRSSを読み出します。携帯百景の特定のユーザ(例ではexample)のRSSのURLを指定しています。

RSS::abstract_url

- module: RSS::abstract_url

RSSフィードからURLだけを抽出します。抽出したURLは後述のget_htmlを行うために使用します。

RSS::abstract_urlモジュールは、ここ(http://d.hatena.ne.jp/u-ichi/20080625/1214405663)のを使わせて頂いています。

Filter::deduped

- module: Filter::deduped
  config:
   path: "./"

先ほど取得したURLをキャッシュします。次回以降同じURLのものは処理対象となりません。

Filter::get_html

- module: Filter::get_html

新規抽出分のURLにアクセスして、htmlの全文を取得します。

sub_string

- module: sub_string
  config:
   regex: '<img class=\"image\" src=\"(http://image.movapic.com/pic/m_.*?)\"/>'

今回作成したモジュールです。渡されたdataに格納されたhtmlから正規表現によって携帯百景の画像のURLを抽出を行います。

モジュールは、こちらに置いています(Praggerを使ってdataから特定の文字列を抽出する - 酢ろぐ!)。

save_string

- module: save_string
  config:
   path: 'c:/example_picture/'

今回作成したモジュールです。渡されたdataに格納されたURLから、config["path"]で指定されたフォルダへダウンロードをします。

モジュールは、こちらに置いています(Praggerを使ってdateに格納されたURLを保存する - 酢ろぐ!)。

以上で、仕様が変わらなければ携帯百景のRSSからローカルへ画像が保存出来ていると思います。

Praggerはインストールが簡単で環境構築がしやすいので、Praggerを使ってもっと色んな事をしてくれる同士が欲しい今日この頃でした。