はてなフォトライフから画像ぶっこ抜き
はてなフォトライフってのは基本的にアップロードを前提としたサービスなので、はてなフォトライフに登録している画像をローカルにバックアップする機能がないのよね。ただ現状個人的にはアップロードは殆どしてなくて、はてなハイクでお絵かきした画像の保存先でしかない。んで、そのお絵かきした絵をローカルに落としたいんだけど、どうしたらよかろうか。って事でrubyスクリプトを書いてみた。
まぁ単純にRSSフィードから画像ファイルのURLを正規表現で抜いているだけですけどね。しかも結構な富豪プログラム。お絵かき画像はサイズがそれほどでもないので、まぁいいか。
後、はてなのサーバにもやさしくように毎回RSSフィードを全ページアクセスしているところを新着分のみを取得できるようにするべきかな。
# Hatenafotolife から画像をぶっこ抜き require 'open-uri' require 'uri' list = [] 1.upto(99) do |page| doc = open("http://f.hatena.ne.jp/Pink/rss?model=Hatena%20Haiku&page=#{page}"){|f|f.read} # はてなハイクのみ # doc = open("http://f.hatena.ne.jp/Pink/rss?page=#{page}"){|f|f.read} # 全部 temp = doc.scan(%r|<hatena:imageurl>(.+?)</hatena:imageurl>|) if temp.empty? break else list << temp end end list.flatten! list.each do |url| uri = URI.parse(url) basename = File.basename(uri.path) unless FileTest.exist? basename File.open(basename, "wb") do |file| file.write open(url, "rb"){|f|f.read} end end end