認証Cookieをファイルに保存するために、この回答に基づいて以下のコードを使用しています。これにより、プログラムを実行するたびにログインする必要がなくなります。
現在、通常のセッション Cookie からcsrftokencsrf = s.cookies['csrftoken']
を取得することはうまく機能しますが、を使用して cookiejar から取得しようとすると、
AttributeError: LWPCookieJar instance has no attribute '__getitem__'`
s.cookies は現在 LWPCookieJar オブジェクトですが、リストとして扱っているため、これが発生することを理解しています。これにより、2つのオプションが残ると思います。
また:
- オブジェクトからリストを抽出し
LWPCookieJar
、csrf トークンを取得するのは簡単です。 - または、csrf トークンを から直接取得するための適切な構文を見つけます
LWPCookieJar
。
これどうやってするの?
import os
import requests
from cookielib import LWPCookieJar
s = requests.Session()
s.cookies = LWPCookieJar('cookiejar')
if os.path.exists('cookiejar'):
# Load saved cookies from the file and use them in a request
print('loading saved cookies')
s.cookies.load()
else:
# Create a new cookies file and set our Session's cookies
print('saving cookies')
s.cookies.save()
r = s.get('http://httpbin.org/cookies')
print(r.text)
# Save the session's cookies back to the file
s.cookies.save()