Я использую приведенный ниже код на основе этого ответа для хранения файлов cookie аутентификации в файле. Это позволяет мне не входить в систему каждый раз, когда я запускаю программу.
Теперь получение csrftoken из обычных файлов cookie сеанса работает хорошо, но когда я пытаюсь получить его из файла cookiejar с помощью csrf = s.cookies['csrftoken']
, я получаю
AttributeError: LWPCookieJar instance has no attribute '__getitem__'`
Я понимаю, что это происходит, потому что я рассматриваю s.cookies как список, хотя теперь это объект LWPCookieJar. Я полагаю, это оставляет мне два варианта:
Либо:
- Извлеките список из объекта
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()
dir(s.cookies)
? - person kylieCatt   schedule 12.11.2014