【Ruby】open-uri でのユーザーエージェントを変更する
2022/05/09
open-uri を使ってアクセスする時にユーザーエージェントを偽装したい時がある
やり方
ハッシュ引数で指定できる
require 'open-uri'
URI.open('http://localhost:4567', 'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36').read
#=> "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
デフォルトは Ruby らしい
URI.open('http://localhost:4567').read
#=> "Ruby"
補足
実行環境
$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
ユーザーエージェントを返すAPI
Sinatra で作った
app.rb
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'sinatra'
gem 'puma'
end
get '/' do
request.user_agent
end
Sinatra::Application.run!
$ ruby app.rb
$ curl localhost:4567
curl/7.29.0