Ruby アメブロのRSSから画像を取得する

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

スポンサードリンク

アメブロのimage情報はsummaryの中に<img>として配置されている。

また、ブログ文中で使用されている絵文字も画像として取り扱われているので、私の場合、幅高さが150px以下の画像(多分、実サイズは96px)は認識しない画像として定義した。

画像サイズの取得は先日紹介したFastImageを使用した。

rss = Feedjira::Feed.fetch_and_parse blog.rss_url
rss.entries.each do |item|

  doc = Nokogiri::HTML.parse(item.summary, nil, "utf-8")
  image = nil
  doc.css('img').each do |src|
    image = src.attribute("src")&.value
    h_w = FastImage.size(image)
    #150以下は問題外
    if !h_w.nil? && (h_w[0] <= 150 || h_w[1] <= 150)
      image = nil
      next
    end
    #最初に見つかった画像を返す
    return image
end