Ruby 初心者スレッド Part 15

このエントリーをはてなブックマークに追加
717デフォルトの名無しさん
WWW::MechanizeでWikipediaのページを入手しようとするとgetのところで延々とリダイレクトしつづけて処理が終わりません。
googleのトップページとかは普通にgetできました。
何が悪いのでしょうか?(ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-freebsd6.1])

require 'rubygems'
require 'mechanize'
require 'logger'
class Web
attr_reader :page
def initialize(uri)
@page = get_page(uri)
end
private
def get_page(uri)
agent = WWW::Mechanize.new {|a| a.log = Logger.new('access.log')}
# agent.redirect_ok = false
agent.user_agent_alias = 'Windows IE 6'
page=""
begin
page = agent.get(uri)
pp agent
rescue
puts "Error: cant't get"
return false
end
return page
end
end
uri = "http://ja.wikipedia.org/wiki/%E6%BA%90%E7%BE%A9%E7%B5%8C"
web = Web.new(uri)
pp web.page
718デフォルトの名無しさん:2007/11/28(水) 20:56:41
Ruby用のテストドライバとスタブの自動生成ツールとかあるかいな?
719デフォルトの名無しさん:2007/11/28(水) 21:42:17
>>717
agent.get(URI.parse(uri))
720717:2007/11/28(水) 23:00:22
>>719
サンクスです。できました。

getの中でto_absolute_uriメソッドを呼んでて、
to_absolute_uriメソッドの中でuriがURIオブジェクトであればごにょごにょやってるんですね。
uriはStringオブジェクトオンリーかと思い込んでました。

自分ひとりだと解決できなかった気がします。本当にどうもです。