Ruby curbでリファラーとユーザーエージェントを設定してWebページを取得

通常のブラウザからのHTTPリクエストに近づけるため、HTTPヘッダーにエージェントとリファラーを設定する方法を確認しました。

※目次をクリックすると目次の下部にコンテンツが表示されます。

HTTPヘッダーを確認する方法
1)Webパケットモニタリングツールでモニタ
 
例えば下記ツールをインストールしてモニタします。
Fiddler
 
・ブラウザによる通信は、Fiddlerを起動すると自動でモニタできます。
 
・Ruby curbを使った通信をモニタリングする場合は、下記のようにプロキシーのポートの設定を行います。
curl.proxy_url = ‘127.0.0.1:8888’
 
2)Apacheのアクセスログで確認
 
ローカル環境など自分が管理するWebサーバーを使って動作確認する場合は、Webサーバーのアクセスログで確認する事が出来ます。
 
Apacheのログ設定で、リファラーとユーザーエージェントを記録する場合の例です。
 
(設定例)
LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
CustomLog “logs/access.log” combined

Ruby curbサンプルプログラム
1)リファラーとユーザーエージェントの設定
 
下記のように設定できます。
curl.headers[“User-Agent”] = “User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0”
curl.headers[“Referer”] = “http://localhost/bootstrap3/”
 
2)サンプルプログラム

require 'curb'

c = Curl::Easy.new("http://localhost/bootstrap3/offcanvas.html") do |curl| 
  curl.headers["User-Agent"] = "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0"
  curl.headers["Referer"] = "http://localhost/bootstrap3/"
  curl.verbose = true
  curl.proxy_url = '127.0.0.1:8888' #Fiddler監視用
end
c.http_get
web_page = c.body_str
result = web_page.scan(/(<a\s.*<\/a>)/)
result.each{|x|
  print x,"\n"
}
?>

 
3)Apacheアクセスログの確認
 
127.0.0.1 – – [09/May/2014:21:44:44 +0900] “GET /bootstrap3/offcanvas.html HTTP/1.1” 200 6628 “http://localhost/bootstrap3/” “User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0”

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です