方針
ここ ( http://qiita.com/uedatakeshi/items/4660dfda727315b21f12 ) にある通りにログインをすれば出来そうです。
POSTするパラメータを調べるには、Chromeの開発者ツールを使いました。画面上の方の、 Preserve Log にチェックを入れておくと、ページが遷移してもログが残るため便利です。
というわけで
Chromeの画面に表示されている通りのパラメータをPostしてあげればOKです。2017/08/16 現在のパラメータは次のとおりでした。
session[username_or_email] | ユーザーネームまたはメールアドレス |
---|---|
session[password] | パスワード |
authenticity_token | hiddenフォームに埋め込まれているトークン |
ui_metrics | 不明。無くても良いっぽい。 |
scribe_log | 不明。空文字列。 |
redirect_after_login | 恐らくログイン後のリダイレクト先。空文字列。 |
remember_me | ログインを記憶するかどうか |
ですので、最初に https://twitter.com/login にアクセスして認証トークンを取得し、そのトークンを用いて https://twitter.com/sessions にこれらをPOSTするとログインできます。
まずは login.html を取得。クッキーも保存します。
wget --keep-session-cookies --save-cookies=cookies1.txt -E https://twitter.com/login -O login.html
認証トークンは login.html に埋め込まれているので、 grep を用いて抽出しました。
token=`cat login.html | grep -oP '(?<=name="authenticity_token" value=").+?(?=")'`
この認証トークンと、ID、パスワードを用いてログインします。
wget --keep-session-cookies --load-cookies=cookies1.txt --save-cookies=cookies2.txt -E --post-data="session[username_or_email]=【URLエンコードされたユーザーIDまたはメールアドレス】&session[password]=【URLエンコードされたパスワード】&authenticity_token=$token&ui_metrics=&scribe_log=&redirect_after_login=&remember_me=1" https://twitter.com/sessions -O sessions.html
ログインが出来たら、得られた cookies2.txt を用いて、好きなページを取得することができます。
wget --keep-session-cookies --load-cookies=cookies2.txt -E https://twitter.com/i/notifications -O notifications.html