動かざることバグの如し

近づきたいよ 君の理想に

RubyでRSS取得するときにUser-Agentを偽装する

環境

  • ruby 2.3
  • 多分どのバージョンでも動く 相当古くなければ

TwilogRSSRubyでしようとしたら403が返って取得できない。ブラウザだとちゃんと表示できてるあたり、どうもユーザーエージェントで弾いてるっぽい。

ってことで偽装すればすんなり取得できるようになった。このあたりははてなブックマークのRSSの仕様に似ているな。。。

require 'rss'
require 'open-uri'
uri = 'http://twilog.org/rss-feed/amanekey'

opt = {}
opt['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko'

open(uri, opt) do |rss|
  feed = RSS::Parser.parse(rss)
  feed.items.each do |item|
    puts "#{item.title}"
  end
end

にしてもRSSって、そもそもコンピュータが取得するために用意されてるはずなのに、なんでパーサー経由だと弾くんだろうか??