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には接続できています。
宜しくお願いします。
現在インストールしている
バージョンは
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 というのに変わったので
ということだと思います。
質問に
Ruby on Rails 1.9
と書かれているのは、Ruby on Rails のバージョンではなく、Ruby のバージョンだと思いますが、
http://mechanize.rubyforge.org/index.html
Dependencies
- ruby 1.8.7, 1.9.2, or 1.9.3
- nokogiri
とありますから、1.9.2 か 1.9.3 にあげる必要があると思います。
ちなみにエラーはひとつだけで、どこでエラーが出ているかをしめす行が複数あるだけです。
現在インストールしている
バージョンは
ruby 1.9.3p194
Rails 3.2.8
gem 1.8.24 です。
質問文を編集しました。詳細はこちら。