文字コードとか
早速インストールします。
1 | $ 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.
↓
1 | $ sudo gem install mechanize |
解決
「ページを読む部分」
ちなみに探しているフォームのnameがnilだった。
1 2 3 4 5 6 7 8 | 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でエンコーディングの推測に失敗するとき
↓
1 2 3 4 5 6 7 8 9 | 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)
( ´,_ゝ`) ......
1 2 3 4 5 6 7 8 9 | 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の場合
証明書をそのページからとってきて以下のようにするとうまくいった。
1 2 3 4 5 | 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 件のコメント:
コメントを投稿