Получить файл xls post-запросом
На сайте, в браузере нажимаю на кнопку "Получить отчет", ловлю отправляемый запрос с параметрами. Сервер формирует отчет. Заголовки ответа, содержащие вложение в виде xls файла, браузер получает спустя какое-то время, примерно секунд 30.
В python отправляю post с теми же параметрами и получаю заголовки ответа почти мгновенно, без задержек. При этом заголовки отличаются, например Content-Type уже text/html, файла нет. Соответственно в сохраняемом xls я просто получаю html страницы.
Пробовал в параметрах запроса установить timeout - не помогло.
Вопрос - как получить корректные заголовки с файлом?
Мой код:
import config
import requests
url = 'https://portal.skai-corp.com/'
session = requests.Session()
# авторизация
data = {'do': 'login_login',
'e_mail': config.login,
'password': config.password}
headers = {
'Accept': '*/*',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 OPR/78.0.4093.147'
}
session.post(url, headers=headers, data=data)
r = session.get(url)
assert 'Капустин' in r.text
print('Авторизован')
# запрос файла
headers = { *some_headers* }
data = { *some_data* }
r = session.post(url, data=data, headers=headers, timeout=30)
print(r.headers)
with open('download.xls', 'wb') as file:
file.write(r.content)
