2011-03-19 wget で post してみた
■[command] wget で post してみた
現在、UNIX 系 OS でインターネット上のデータを取得する時、もっともスタンダードな方法(と思っている)である wget ですが、かなり高機能ではてしなくたくさんのオプションがあります。
最近では、各OSでほぼほぼデフォルトで用意されていて、自分でインストールする必要がないことが多いです。
仮になかったとしても、"yum install wget" とか "pkg_add -r wget" みたいにパッケージ管理コマンド一発で入ってしまうので楽ちんです。
こんな wget は、ずいぶん前から、いろいろなサイトでその魅力が紹介されていますが、
という訳で、今更ながら感動したので、wget を使って post してみました。
自前の web アプリの正常性確認だとか、テストの自動化にさくっと使えて便利な気がします。
※今回のテスト環境 FreeBSD 8.0 R GNU Wget 1.12 built on freebsd8.0.
早速、post に必要なコマンドの引数を示します。
$ wget --post-data "postするデータ" $url
これだけです。
これを使って、Yahoo! Mail にログインしてみます。
# IPASSは架空のものなので、テストには実際のIPASSをつかっています。
> sh $ yid='hogehoge' $ ypw='fugafuga' $ wget --post-data "cmd=.save&login=${yid}&passwd=${ypw}" https://login.yahoo.co.jp/config/login? -O result
これでログインに成功している場合は、以下の html が変えされます。
wget の結果は、"-O" オプションを使っているので "result" に保存されるので、"cat result | nkf -w" などで見てみましょう。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script language="JavaScript"> <!-- window.location.replace("http://www.yahoo.co.jp"); // --> </script> <meta http-equiv="Refresh" content="0; url=http://www.yahoo.co.jp"> </head> <body> <a href="http://www.yahoo.co.jp">http://www.yahoo.co.jp</a>へジャンプしようとしています。 自動的にページが切り替わらない場合には、<a href="http://www.yahoo.co.jp">こちら</a>をクリックしてください。</body> </html>
逆に失敗している場合は、以下のようになります(218〜230行目を抜粋)。
if (id.tagName !== 'INPUT' && pw.value === '') { preventDefault(e); showError('パスワードが正しくありません。'); pw.focus(); }else if((pw.value === '' && id.value === '') || (pw.value !== '' && id.value === '')){ preventDefault(e); showError('Yahoo! JAPAN IDまたはパスワードが正しくありません。'); id.focus(); }else if(pw.value === '' && id.value !== ''){ preventDefault(e); showError('Yahoo! JAPAN IDまたはパスワードが正しくありません。'); pw.focus(); }
このように、返される html を元に成功したか失敗したかの判断ができますので、簡単な条件式をつけるだけで判別できます。
$ grep "求める文字列" result > /dev/null $ if [ $? -eq '0' ]; then > echo 'Success' > else > echo ' fail' > fi
技術評論社
購入: 6人 クリック: 358回
購入: 6人 クリック: 358回
トラックバック - http://d.hatena.ne.jp/wittro/20110319/1300525067
リンク元
- 16 http://www.google.co.jp/search?q=放射線 モニタリング&hl=ja&client=firefox-a&hs=syE&rls=org.mozilla:ja:official&prmd=ivnsu&ei=R4aETZ6QPIjyvwPCmNjJCA&start=30&sa=N
- 13 http://hady.red-b.org/blog/
- 11 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4ADFA_jaJP411JP411&q=安否確認 まとめ
- 10 http://longurl.org
- 9 http://search.yahoo.co.jp/search?p=千葉 放射線 モニタリング&rs=1&tid=top_ga1_sa&ei=UTF-8&oq=千葉+ほうしゃ&fr=top_ga1_sa
- 7 http://search.yahoo.co.jp/search?p=放射線+モニタリング 千葉&ei=UTF-8&fr=top_ga1&x=wrt
- 5 http://search.yahoo.co.jp/search?p=放射線モニタリング+江東区 Ustream&aq=-1&oq=&ei=UTF-8&fr=top_ga1_sa&x=wrt
- 5 http://www.google.co.jp/search?hl=en&q=virtualbox+vnc&aq=f&aqi=g1g-c2g5g-m2&aql=&oq=
- 5 http://www.google.co.jp/search?hl=ja&q=放射線モニタリング 新宿&aq=f&aqi=&aql=&oq=
- 4 http://ezsch.ezweb.ne.jp/search/?query=爪の白点+小指&start-index=36&adpage=6&ct=1301&sr=0001&t=20110322003322&filter=1