#問題
いろんな参考記事を見ていると(Qiitaログインなど)、ログインページに対して
payload = {
'userid': 'my_id',
'password': 'my_pass'
}
s = requests.Session()
p = s.post(login_url, data=payload)
r = s.get(want_to_access_url)
まあだいたいこんな感じで処理をしておられて、それでうまくいくよ!とのことだったのですが、僕がログインしようと思ったページはなぜかできない...。
exciteメールとかで試すとうまくいくのに...。
#解決
ソースコードをよくよく読み返していると、ログインフォームの上部分に
<form action="/login/login/" method="post">
こんなコードがありました。
action属性とは
・formタグに指定する属性で、必ず指定しなければならない
・フォームの送信ボタンを押して送信されるデータの送信先を指定する
・データの送信先のことをURIという
・指定するのはデータを受け渡す処理をしてくれるサーバーのCGIプログラムのURI
ということで、
URLの末尾をactionのパスに書き換えればいいんじゃね!?
add-action-path
failed_url = 'https://ssl.syosetu.com/login/input/' #ブラウザからアクセスした時表示されるURL
success_url = 'https://ssl.syosetu.com/login/login/' #うまくログインできるURL
と試して見たら、ドンピシャでうまくいきました。
WEBの勉強しなきゃ...。汗
「あれ?ログインできない!なんで!」と思われた方はお試しください!