URLが正しいものか確かめたくて、Rubyのnet/http
ライブラリを使って以下のように書きました
check_url.rb
require 'net/http'
response = Net::HTTP.get_response(URL)
puts response.body
結果
$ ruby check_url.rb
$
空になってました。
リダイレクト先を指定する必要がありそうだと思ったので調べてみたところ、最後に['location']
をつけるとリダイレクト先のURLを取得できることがわかりました
check_url.rb
require 'net/http'
redirect_url = Net::HTTP.get_response(URL)['location']
response = Net::HTTP.get_response(redirect_url)
puts response.body
スクレイピングでよくmechanizeを使うのですが、勝手にリダイレクトしてくれるのであまり考えたことがありませんでした。
ちなみにcurlの場合は-L
をつけるとリダイレクトしてくれます。
$ curl -L URL
参考
URLをチェックするメソッドがこの記事で実装されていました
http://piko.hateblo.jp/entry/2013/05/24/194739