mechanize referer

http://www.dzone.com/snippets/many-mechanize-examples

page = agent.get(:url => 'http://apoc.sixserv.org/requestinfo/',

referer => 'http
//google.com/this/is/a/custom/referer')

puts page.body

http://w.livedoor.jp/ruby_mechanize/d/Mechanize

http://d.hatena.ne.jp/kitamomonga/20081215/ruby_mechanize_faq_for_v_0_9
get 時に特定のリファラー URL 文字列を設定する

agent.get(uri, URI.parse('http://www.example.com/referer_url'))
# または
agent.get(:url => uri, :referer => URI.parse('http://www.example.com/referer_url'))


http://d.hatena.ne.jp/kitamomonga/


ひと続きのサーバーリダイレクトのリファラはすべて「最初」のURLを送信し続けるように

pageA から pageB にリダイレクトされてさらに pageC にリダイレクトされる場合、pageA に ref というリファラが設定されたなら

従来の Mechanize

Referer: ref というリクエストヘッダつきで pageA を取得
Referer: pageA というリクエストヘッダつきでリダイレクト先の pageB を取得
Referer: pageB というリクエストヘッダつきでリダイレクト先の pageC を取得

これからの Mechanize 2.1 、または一般的な Web ブラウザ

Referer: ref というリクエストヘッダつきで pageA を取得
Referer: ref というリクエストヘッダつきでリダイレクト先の pageB を取得
Referer: ref というリクエストヘッダつきでリダイレクト先の pageC を取得

という動作になります。どちらかというと従来の Mechanize の動作のほうがそのまんまで素直なような気もするのですが、フツーの Web ブラウザの動作は後者になっているようなので、それに合わせられました。


リファラを送る場合::http://d.hatena.ne.jp/kitamomonga/20080613/ruby_mechanize_https_referer