- 締切済み
mechanize のsearch methodについて
現在Rubyを勉強しているものです。 webページの情報を自動的に取得して、メールの送信をおこなう というプログラムを組んでいます。 Mechanizeを利用すれば可能であることがわかったのですが、 サンプルコードを実行してみたところ、 ./www/mechanize/page.rb:97:in `forms': undefined method `search' for nil:NilClass (NoMethodError) というエラーが発生してしまいます。 その他のコードや、linux環境でも試しましたが同様でした。 どなたかお分かりの方教えていただければと思います。
- みんなの回答 (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)
補足に書かれたコードはp agentまで含めて問題なく動作しますよ。
その「サンプルコード」全体を示してくれないと、誰も回答することができません。(私は mechanize を使っていないので、私自身はサンプルコードを見ても回答できないと思います。) エラーの内容から、 mechanize を呼び出す際に変数の中に何も入っていない (nil である) 可能性が高いと思います。
補足
失礼しました。 require 'rubygems' require 'mechanize' agent = WWW::Mechanize.new agent.get('http://www.google.co.jp/') でサイトから情報を取り出せてはいるとおもうのですが、 そこから先に p agent などアクセスするメソッドを入れるとだめです。。。
補足
そのはずなのですが、自分の環境ではうまくいかないんです。。。 必要なライブラリ、依存関係が原因かともおもい、 みてみたのですが、わかりませんでした。 どのエラーも 'search'っというメソッドがnilから呼ばれている と表示されるんです。