秀丸からRubyを実行する。〜秀丸からの連投を目指して〜
とりあえず、5月17日のRuby勉強会で、ujihisaさんが紹介していた、WWW::Mechanizeを使用してみる。
とりあえずインストール。
gem install mechanize
EeePCでは、メモリが足りないとか怒られてインストールできなかったので、
デスクトップPCに、インストール。
うまくいきました。*1
早速RubyScraping - Mechanizeで紹介しているソースを実行して試してみる。
施行
使用例
自動google検索。
require 'rubygems' require 'mechanize' agent = WWW::Mechanize.new # インスタンス生成 agent.user_agent_alias = 'Mac Safari' # User-Agentの設定 page = agent.get('http://www.google.com/') # ページ取得 search_form = page.forms.with.name('f').first # "f"という名前のフォームを探す search_form.q = 'Hello' # テキストボックス"q"に"Hello"を入力 search_results = agent.submit(search_form) # フォームのsubmitボタンを押す puts search_results.body # 結果の取得
を秀丸で実行したのですが。。。。
Buffer overrun error at LocalUnlock (986) <font size=-1><input type=text name=q size=41 maxlength=2048 value="Hello" ti \util.cpp(1195) error = 0 ご面倒でなければこのエラーの再現手順を書き添えて、秀丸エディタをインストールしたフォルダ(またはマイドキュメント)にあるdump.txtの内容を作者に連絡ください。また、秀丸エディタは早めに終了させてください。
コマンドプロントより実行した場合は問題なく動きます。
だんだんとWindowsが嫌いになっていく。。。。
しかし、懲りずにもう少し進めよう。
秀まるおのホームページ(サイトー企画)−RubyEval for 秀丸マクロ Ver.0.02で、動かしてみようと思い。
下記ソースで実験。
url = $RUBY_EVAL_INSTR require 'rubygems' require 'mechanize' agent = WWW::Mechanize.new # インスタンス生成 agent.user_agent_alias = 'Mac Safari' page = agent.get(url) $RUBY_EVAL_INSTR = page.title
と、こんどは下記エラー。。。
#<SocketError: c:/ruby/lib/ruby/1.8/net/http.rb:564:in `initialize': getaddrinfo: non-recoverable failure in name resolution.>
ちなみに、エラーが指している564行目は、
s = timeout(@open_timeout) { TCPSocket.open(conn_address(), conn_port()) }
です。
*1:EeePCでもできるようにがんばろう。