Я пытаюсь получить значение Location
из запроса POST
с использованием модуля запросов python. Однако, когда я смотрю заголовки ответа, я не вижу такого ключа. Выполнение одного и того же запроса с помощью Google Chrome показывает ключ.Получить местоположение из заголовка ответа
Здесь я пытаюсь загрузить данные: https://data.police.uk/data . Запустите это в Google Chrome и откройте Инструменты разработчика. Когда вы выбираете диапазон дат, выберите силу и нажмите Generate File
, вы можете увидеть запрос POST
, сделанный с помощью ключа Location
в заголовке ответа.
import requests
from urlparse import urlparse, urljoin
BASE = 'https://data.police.uk'
FORM_PATH = 'data'
form_url = urljoin(BASE, FORM_PATH)
# Get data download URL
client = requests.session()
try:
client.get(form_url)
except requests.exceptions.ConnectionError as e:
print (e)
sys.exit()
csrftoken = client.cookies.values()
l = [('forces', 'cleveland')]
t = ('csrfmiddlewaretoken', csrftoken[0])
d_from = ('date_from', '2014-05')
d_to = ('date_to', '2016-05')
l.extend((t, d_from, d_to))
r = client.post(form_url, headers=dict(Referer=form_url), data=l)
запрашивая заголовки ответа дает мне:
In [4]: r.headers
Out[4]: {'Content-Length': '4332', 'Content-Language': 'en-gb', 'Content-Encoding': 'gzip', 'Set-Cookie': 'csrftoken=aGQ7kO4tQ2cPD0Fp2svxxYBRe4rAk0kw; expires=Thu, 03-Aug-2017 22:11:44 GMT; Max-Age=31449600; Path=/', 'Vary': 'Cookie, Accept-Language', 'Server': 'nginx', 'Connection': 'keep-alive', 'Date': 'Thu, 04 Aug 2016 22:11:44 GMT', 'Content-Type': 'text/html; charset=utf-8'}
Вопрос: Как я могу получить Location
ключ из заголовка ответа?
EDIT
Ответ: Если бы указать l.append(['include_crime', 'on'])
. Работает после этого.
Вы проверили тело ответа? Он обычно содержит запрошенные данные. – trans1st0r
@ trans1st0r: как я получу заголовок ответа из тела запрашиваемых данных? – armundle
Попробуйте выполнить некоторые команды здесь: http://docs.python-requests.org/en/master/user/quickstart/#response-content – trans1st0r