Получить cookie из CookieJar по имени
Я знаю, что я могу перебирать файлы cookie в cookiejar, и это позволило бы мне найти файл cookie с определенным именем - но имеет ли сам объект CookieJar какие-либо методы, которые я могу вызвать, чтобы получить определенный файл cookie по имени?
Это просто избавляет меня от необходимости писать вспомогательный метод, который уже существует.
Ответы
Ответ 1
Да, метод __iter__
будет проходить через каждый файл cookie в CookieJar
.
for cookie in cj:
print cookie.name, cookie.value, cookie.domain #etc etc
Файл cookie - это не просто пара имен и значений. В его длинном списке (17) свойств есть domain
и path
. Значение домена .ibm.com
будет применимо, например, к веб-сайту mail.ibm.com
. Значение домена ibm.com
и значение пути /abc
не будут относиться к веб-странице ibm.com/index.htm
. Таким образом, при подаче только одного имени недостаточно найти значение применимого файла cookie в CookieJar
.
Хотя метод __iter__
легко возвращает список объектов cookie
, например list(cj)
, внутренняя структура CookieJar
не является простым списком. Внутренние элементы класса CookieJar
здесь.
Ответ 2
Вы также можете использовать dict_from_cookiejar, которая возвращает словарь ключ/значение из CookieJar. Что-то вроде:
my_cookies = requests.utils.dict_from_cookiejar(s.cookies)
а затем получить доступ к вашему значению cookie по ключу.
Ответ 3
Это недокументированные внутренности, но вы можете напрямую обращаться к файлам cookie: cookiejar._cookies[domain][path][name]
Ответ 4
cookielib.CookieJar?
вы можете преобразовать jar в список и процесс, например, {i.name: i for i in list(j)}
и btw, j._cookies на самом деле является dict-dict уже, хотя и не полностью тривиально индексированным.
файл cookie cookie?
Я думал, что это простые текстовые файлы...
Ответ 5
Смешайте CookieJar с модулем Cookie
const { parse } = require("cookie");
// uri eg: http://localhost
const cookies = parse( cookieJar.getCookieString(uri) );
const cookieValue = cookies["cookie-name"];
Если uri
имеет префикса http://
он не получит cookie от jar