2012年7月26日

Mechanize 事始め

Mechanize の最初の使い方を勉強しました。

本日時点でMechanize の最新版が 2.5.1 なので少し情報が古いですが、以下のページを見て勉強しました。
RubyのMechanizeを解説 for 1.0.0

書かれていたスクリプトを実行
require 'mechanize'
require 'kconv'

agent = Mechanize.new
agent.get('http://www.google.co.jp/')
agent.page.form_with(:name => 'f'){|form|
  form.field_with(:name => 'q').value = 'Ruby'
  form.click_button
}
agent.page.link_with(:text => "オブジェクト指向スクリプト言語 Ruby".toutf8).click
puts agent.page.uri
puts agent.page.at('div#logo/img')['alt']
ruby test.rb で実行です。
しかし、上手くいきませんでした。
以下のようなエラーが出ました。
test.rb:11: invalid multibyte char (US-ASCII)

調べてみると、これは、ascii以外の文字列が入っていると出るエラーでした。
対処方法は、行先頭に
# -*- encoding: utf-8 -*-
を入れましょうとの事です。
行頭に文字列を入力して、再度実行すると上手くいきました。