文字コードとか
早速インストールします。
$ gem install mechanize↓
Fetching: unf_ext-0.0.6.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/local/lib/ruby/gems/2.1.0 directory.
↓
$ sudo gem install mechanize↓
解決
「ページを読む部分」
ちなみに探しているフォームのnameがnilだった。
agent1 = Mechanize.new
page1 = agent1.get('URL')
p page1
page1.form_with(:name => nil){ |form|
p form
form.click_button
}
実行↓
incompatible character encodings: ISO-2022-JP and UTF-8
(Encoding::CompatibilityError)
↓
参考サイト
Mechanizeでエンコーディングの推測に失敗するとき
↓
agent1 = Mechanize.new
page1 = agent1.get('URL')
agent1.page.encoding = 'ISO-2022-JP'
p page1
page1.form_with(:name => nil){ |form|
p form
form.click_button
}
↓incompatible character encodings: ISO-2022-JP and UTF-8
(Encoding::CompatibilityError)
( ´,_ゝ`) ......
agent1 = Mechanize.new
page1 = agent1.get('URL')
agent1.page.encoding = 'UTF-8'
p page1
page1.form_with(:name => nil){ |form|
p form
form.click_button
}
↓解決
ruby側と同じ文字コードにする?p pageとかで表示すると読めないが通信はうまくいくっぽい。
httpsの場合
証明書をそのページからとってきて以下のようにするとうまくいった。
agent = Mechanize.new
agent.ssl_version = 'SSLv3'
agent.ca_file = "証明書があるパス"
agent.verify_mode = OpenSSL::SSL::VERIFY_PEER
agent.get('URL')
参考サイト
Mechanize についてgithub mechanize
Mechanize::Form
httpsでMechanizeを使う
0 件のコメント:
コメントを投稿