人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Ruby言語でエラーがでて解決できないので、教えてください。

HTMLをクロールして必要データーをCSVに書き出しするプログラムのテストしてます。

http://memo-sasaki0605.blogspot.jp/2009/11/ruby.html

上記URLで紹介されてるソースコードを参考にしましたが、

hpricot/parse.rb:14:in 'parse':wrong number of arguments(3 for 2) (ArgumentError)
mechanize/page.rb:120:in 'block in parser'
mechanize/page.rb:119:in 'reverse_each'
mechanize/page.rb:119:in 'parser'
mechanize/page.rb:328:in 'block in links'
mechanize/page.rb:327:in 'map'
mechanize/page.rb:327:in 'links'

7つのエラーがでて解決できません。

環境はWin7
Ruby on Rails 1.9 (ruby 1.9.3p194)
gems 1.9.1
mechanize 2.5.1

また書き出しにCSVファイルから直接SQLServer へ書き込みに変更したいのですが、参考コード教えていただけますか。
SqlServerには接続できています。

宜しくお願いします。


●質問者: とし
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● gizmo5
●250ポイント

質問に

Ruby on Rails 1.9

と書かれているのは、Ruby on Rails のバージョンではなく、Ruby のバージョンだと思いますが、

http://mechanize.rubyforge.org/index.html

Dependencies

とありますから、1.9.2 か 1.9.3 にあげる必要があると思います。

ちなみにエラーはひとつだけで、どこでエラーが出ているかをしめす行が複数あるだけです。


質問者から

現在インストールしている
バージョンは

ruby 1.9.3p194

Rails 3.2.8

gem 1.8.24 です。


2 ● gizmo5
●250ポイント ベストアンサー

現在インストールしている
バージョンは

ruby 1.9.3p194

Rails 3.2.8

失礼しました。

もちょっと近そうなやつを見つけました。
http://homepage2.nifty.com/takaaki024/tips/programs/ruby/ruby.html

Q. 次のようなエラーが出るようになった
> /usr/lib/ruby/gems/1.9.1/gems/hpricot-0.8.5/lib/hpricot/parse.rb:14:in `parse': wrong number of arguments (3 for 2) (ArgumentError)

A.
次のように hpricot を強制していたのだが、それをやめたら出なくなった。

require 'hpricot'
WWW::Mechanize.html_parser = Hpricot


多分、原因は、

# v0.9 ぐらいからバックエンド? が Hpricot から Nokogiri というのに変わったので

ということだと思います。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ