#python #python-requests
#python #python-запросы
Вопрос:
Я извлекаю много данных из api. Вот так.
session = requests.Session()
response = session.post(url, 'auth'), verify=False, json={CREDENTIALS HERE})
head = {'Authorization': 'Bearer %s' % (response.json()['token'])}
response = requests.get(url, headers=head)
Есть ли хороший способ сохранить / кэшировать заголовок и не получать новый токен все время?
Ответ №1:
Вы можете сделать один запрос на сайт, используя сеансы, а затем выполнить сеанс.заголовки, чтобы получить заголовки, которые были отправлены обратно с сайта, и сохранить их в переменной.
serverHeaders = r.headers
#r.headers is below
{'content-length': '56170', 'x-content-type-options': 'nosniff', 'x-cache':
'HIT from cp1006.eqiad.wmnet, MISS from cp1010.eqiad.wmnet', 'content-encoding':
'gzip', 'age': '3080', 'content-language': 'en', 'vary': 'Accept-Encoding,Cookie',
'server': 'Apache', 'last-modified': 'Wed, 13 Jun 2012 01:33:50 GMT',
'connection': 'close', 'cache-control': 'private, s-maxage=0, max-age=0,
must-revalidate', 'date': 'Thu, 14 Jun 2012 12:59:39 GMT', 'content-type':
'text/html; charset=UTF-8', 'x-cache-lookup': 'HIT from cp1006.eqiad.wmnet:3128,
MISS from cp1010.eqiad.wmnet:80'}
https://requests.readthedocs.io/en/master/user/advanced/#request-and-response-objects
В документации у них есть много примеров кода для этого.