前提・実現したいこと
requests、BeautifulSoupによってQiitaにログインしたいのですが
POST通信が上手くできておらず、ログインできません。
コードの流れとしては12行目でログインをした後
authenticity_tokenを取得
その後login_dataを保持した上でPOST通信によりログインしたいと思っております。
発生している問題・エラーメッセージ
request.py:72: GuessedAtParserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("html.parser"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently. The code that caused this warning is on line 72 of the file request.py. To get rid of this warning, pass the additional argument 'features="html.parser"' to the BeautifulSoup constructor. soup = BeautifulSoup(r.text) Traceback (most recent call last): File "request.py", line 79, in <module> res.raise_for_status() File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/requests/models.py", line 941, in raise_for_status raise HTTPError(http_error_msg, response=self) requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: https://qiita.com/login
該当のソースコード
python
1import requests 2from bs4 import BeautifulSoup 3 4login_data = { 5 'authenticity_token':"", 6 'identity':'〇〇', 7 'password':'〇〇', 8 'commit':'Qiita にログイン' 9} 10 11session = requests.Session() 12r = session.get('https://qiita.com') 13soup = BeautifulSoup(r.text) 14r.raise_for_status() 15 16auth_token = soup.find(attrs={'name': 'authenticity_token'}).get('value') 17login_data['authenticity_token'] = auth_token 18 19res = session.post('https://qiita.com/login', login_data) 20res.raise_for_status()
試したこと
Cromeで実際の通信の様子を確認することや
様々な参考資料を読みここまで書いたのですがここからが進みません。
おそらくとても些細なことかと思うのですが、ご教示頂きたいと思っております。
補足情報(FW/ツールのバージョンなど)
Mac、Python 3.8.3