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

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

(1)HTTPヘッダーを確認する方法


 
サンプルプログラムを実行した際に正しくHTTPヘッダーが設定されているか確認する必要があります。
 
1)Webパケットモニタリングツールでモニタする
 
例えば下記ツールをインストールしてモニタします。
Fiddler
http://www.telerik.com/fiddler
 
・ブラウザによる通信は、Fiddlerを起動すると自動でモニタできます。
 
・Ruby curbを使った通信をモニタリングする場合は、下記のようにプロキシーのポートの設定を行います。
:proxy => ‘http://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
 
 

(2)Ruby open-uriサンプルプログラム


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

require 'open-uri'
open("http://localhost/ng/offcanvas.html",
  "User-Agent" => "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0",
  "Referer" => "http://localhost/",
   :proxy => 'http://127.0.0.1:8888') {|f|
  puts f.read
}

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

関連記事の目次

コメントを残す

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