• 締切済み

mechanize のsearch methodについて

現在Rubyを勉強しているものです。 webページの情報を自動的に取得して、メールの送信をおこなう というプログラムを組んでいます。 Mechanizeを利用すれば可能であることがわかったのですが、 サンプルコードを実行してみたところ、 ./www/mechanize/page.rb:97:in `forms': undefined method `search' for nil:NilClass (NoMethodError) というエラーが発生してしまいます。 その他のコードや、linux環境でも試しましたが同様でした。 どなたかお分かりの方教えていただければと思います。

みんなの回答

noname#149362
noname#149362
回答No.3

No.1 です。No.2 さんと同様、私の環境でも問題ありません。 いくつか確認させて下さい。 (1) 本当に以下の5行だけでエラーになりますか? 本当にエラーになるなら、エラーを起こしたスクリプト全文とエラー全文を書いて下さい (手打ちではなくコピー&ペーストで)。 -------- require 'rubygems' require 'mechanize' agent = WWW::Mechanize.new agent.get('http://www.google.co.jp/') p agent -------- (2) mechanize のバージョンはいくつですか? (0.9.0 が最新だと思います。) gem list mechanize で表示されます。 (3) その他の環境の状態を教えて下さい。 gem env で表示される情報です。 (4) ブラウザで http://www.google.co.jp/ は正常に表示されますか?

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

補足に書かれたコードはp agentまで含めて問題なく動作しますよ。

chkk525
質問者

補足

そのはずなのですが、自分の環境ではうまくいかないんです。。。 必要なライブラリ、依存関係が原因かともおもい、 みてみたのですが、わかりませんでした。 どのエラーも 'search'っというメソッドがnilから呼ばれている と表示されるんです。

noname#149362
noname#149362
回答No.1

その「サンプルコード」全体を示してくれないと、誰も回答することができません。(私は mechanize を使っていないので、私自身はサンプルコードを見ても回答できないと思います。) エラーの内容から、 mechanize を呼び出す際に変数の中に何も入っていない (nil である) 可能性が高いと思います。

chkk525
質問者

補足

失礼しました。 require 'rubygems' require 'mechanize' agent = WWW::Mechanize.new agent.get('http://www.google.co.jp/') でサイトから情報を取り出せてはいるとおもうのですが、 そこから先に p agent などアクセスするメソッドを入れるとだめです。。。

関連するQ&A