質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

0回答

2797閲覧

mechanizeでログインができない

shigahi

総合スコア21

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2016/11/17 05:16

###前提・実現したいこと
rubyでログインが必要なページのウェブスクレイピングをしたいため、
mechanizeを使ってログインしようとしているのですが、
試行錯誤してみたのですがうまくいきません。

###発生している問題・エラーメッセージ
undifened method form for main:object(nomethoderror)

###該当のソースコード
どちらも試してみたのですが、どちらも同じような
エラーが出てしまいます。name属性の指定や
form_withやfield_withなどもいまいち
理解できませんでした。
アドバイス等ありましたらよろしくお願い致します。

ruby

1require("mechanize") 2agent = Mechanize.new 3page = agent.get("http://www.watashi-move.jp/pc/login.php") 4form = page.form(form name= "form1") 5form.field_with(:name => "loginid").value = "*" 6form.field_with(:name => "password").value = "*" 7 8form.click_image()

ruby

1#!/usr/bin/ruby 2require 'mechanize' 3agent = Mechanize.new 4agent.user_agent_alias = 'Windows Mozilla' 5 6url = 'http://www.watashi-move.jp/pc/login.php' 7page = agent.get(url) 8mypage = page.form_with(id: 'form1') do |form| 9form.loginid = '*' 10form.password = '*' 11end.submit

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
ログイン部分のhtmlです。

html

1<!-- Login Start --> 2<form id="form1" action="https://www.watashi-move.jp/pc/login.php" method="post" autocomplete="off"> 3<div id="login-page"> 4<h2><img src="images/login_h201.jpg" width="700" height="37" alt="WM会員登録されている方" title="WM会員登録されている方" /></h2> 5<noscript> 6<div id="error-title"><p style="padding: 20px 0 0; text-align:center;">ブラウザでJavaScriptが無効になっているため、このサイトの一部の機能について使えないものがあります。</p></div> 7</noscript> 8<div> 9<div class="login-type-msg">WM(わたしムーヴ)のログインIDでご利用の方</div> 10<div> 11<dl> 12<dt>ログインID</dt> 13<dd><input type="text" name="loginid" value="" class="ime-mode-disabled" /></dd> 14</dl><dl> 15<dt>パスワード</dt> 16<dd><input type="password" name="password" value="" /></dd> 17</dl> 18<em><input type="checkbox" id="auto" name="easy_login" value="自動ログインを設定する" />&nbsp;<label for="auto">自動ログインを設定する</label></em> 19<table style="position: relative; top: 6px; left: 0%;"> 20<tr valign="top"> 21<td> 22※パスワードは定期的に変更することをおすすめします。 23</td> 24</tr> 25</table> 26<div> 27<ul> 28<li><input type="image" src="/pc/images/common/spacer.gif" id="login-button" alt="ログインする" title="ログインする" name="login" onclick="wl.defaultSubmitter.submit('login'); return false;"/></li> 29</ul></div> 30<input id="actlogin" name="actlogin" type="hidden" value="1" /> 31<input name="reflecturl" type="hidden" value="RghPbuC396ahafoTphQq4twWCXAVHQ%2FdNnZ4iBsIBRII9CUqwoUbONlscX9ob0UyTIMwUPTdZiQ%3D" /> 32<input name="reflectiv" type="hidden" value="RPbKjPKQwqA%3D" /> 33<input name="authcount" type="hidden" value="0" /> 34<table width="100%" style="table-layout:fixed;"> 35<tr valign="top"> 36<td width="59%"> 37</td><td> 38<span class="docomoid-description"> 39<a href="javascript:id_forget();" title="ログインIDをお忘れの方" id="forgetLoginId">ログインIDをお忘れの方</a><br /> 40<a href="javascript:reset_password();" title="パスワードをお忘れの方" id="forgetPassword">パスワードをお忘れの方</a> 41</span> 42</td> 43</tr> 44</table> 45</div> 46<br /> 47<br /> 48<div id="base-wl-service-end"> 49<div id="img-important"> 50<img src="/pc/images/common/important.png" alt="重要" title="重要" /> 51</div> 52<div id="text-wl-service-end"> 53ウェルネスリンクパソコンサービス終了に関するお知らせ 54</div> 55<div id="base-btn-wl-service-end"> 56 <input type="image" src="/pc/images/common/spacer.gif" id="btn-wl-service-end" alt="詳細情報はこちらをご覧ください" title="詳細情報はこちらをご覧ください" name="announce_wl_service_end" onclick="wl.defaultSubmitter.submit('announce_wl_service_end'); return false;" /> 57</div> 58</div> 59<div class="login-type-msg">dアカウントでご利用の方</div> 60<div> 61<em><input type="checkbox" id="docomo_auto" name="docomo_easy_login" value="自動ログインを設定する" />&nbsp;<label for="docomo_auto">自動ログインを設定する</label></em> 62<ul class="docomo-login-button"> 63<li><input type="image" src="/pc/images/common/btn_dAccount.png" id="docomo-login-button" alt="dアカウント ログイン" title="dアカウント ログイン" name="docomo_login" onclick="wl.defaultSubmitter.submit('docomo_login'); return false;"/></li> 64</ul></div> 65<div> 66<table width="100%" style="table-layout:fixed;"> 67<tr valign="top"> 68<td width ></td> 69<td> 70<span class="docomoid-description"> 71 <a href="http://www.watashi-move.jp/pc/wm/help_m/pa8fu20000004pbh.html" title="dアカウントで利用するには?" class="subWindowOpen">dアカウントで利用するには?</a> 72</span> 73</td> 74</tr> 75</table> 76</div> 77<br /> 78<div> 79<table style="position: relative; top: 6px; left: 0%;"> 80<tr valign="top"> 81<td> 82※自動ログインを設定すると、ログインIDとパスワードを入力せずにお客様のマイページが閲覧できます。<br /> 83自動ログインを解除するには、「ログアウト」して「自動ログインを設定する」のチェックを外してください。<br /> 84</td></tr> 85</table> 86</div> 87</div> 88</div> 89<div id="login-bottom"> 90<p><a href="javascript:regist_top();" title="新規WM(わたしムーヴ)会員登録する方" id="registTop">新規WM(わたしムーヴ)会員登録する方</a></p> 91</div> 92<input type="hidden" name="wllink" value="" /> 93<input name="path" type="hidden" value="" /> 94<input name="aid" type="hidden" value="" /> 95<input name="sid" type="hidden" value="" /> 96 </form> 97 <!-- Login End -->

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2016/11/17 12:35

いろいろアドバイスしても出来ないようなので、遠回りになりますが、まずはきちんとRubyに入門してはどうでしょうか?そうするとアドバイスの内容も理解できるようになるかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問