ruby の mechanize に関する質問です。

agent = WWW::Mechanize.new
agent.html_parser = Hpricot
page = agent.get('http://google.com')
page.forms.each {|f| p f.buttons}

で、下記のような結果が返ってくるのですが、これは、どうやって各要素を取り出すのでしょうか?
p の仕様に関することなんだと思いますが、どこのドキュメントを見ればいいのでしょう。

[#<WWW::Mechanize::Form::Button:0xb7b7c854 @value="Google \346\244\234\347\264\242", @name="btnG">, #<WWW::Mechanize::Form::Button:0xb7b7c084 @value="I'm Feeling Lucky", @name="btnI">]

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/07/09 11:43:43
  • 終了:2009/07/16 11:45:02

回答(1件)

id:rubikitch No.1

るびきち回答回数120ベストアンサー獲得回数222009/07/09 12:57:51

ポイント60pt
# -*- coding: cp932 -*-
require 'rubygems'
require 'mechanize'
require 'hpricot'
$KCODE='s'

agent = WWW::Mechanize.new
WWW::Mechanize.html_parser = Hpricot
page = agent.get('http://google.com')
page.forms.each do |f|
  # ボタンの配列 # !> `&' interpreted as argument prefix
  f.buttons
# => [#<WWW::Mechanize::Form::Button:0xb77d6ed4 @name="btnG", @value="Google 検索">, #<WWW::Mechanize::Form::Button:0xb77d50e8 @name="btnI", @value="I'm Feeling Lucky">]
  # 最初のボタン
  f.buttons.first        # => #<WWW::Mechanize::Form::Button:0xb77d6ed4 @value="Google 検索", @name="btnG">
  # 1番目(0から数えて)のボタン
  f.buttons[1]        # => #<WWW::Mechanize::Form::Button:0xb77d50e8 @value="I'm Feeling Lucky", @name="btnI">
  # 最初のボタンのvalue
  f.buttons.first.value  # => "Google 検索"
  # 最初のボタンのname
  f.buttons.first.name   # => "btnG"
end

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

id:isogaya

ありがとうございます。試してみます。

2009/07/09 15:10:00

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません