文字コードとか
早速インストールします。
$ 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 件のコメント:
コメントを投稿