Я много пытался заставить это работать.
На веб-сайте есть CSV-ресурсы, которые я хочу загрузить и сохранить. Я могу сделать это с помощью firefox, но хочу автоматизировать процесс.
Примерно так:
headers={ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
payload = { 'email': username, 'password': password}
with requests.Session() as s:
p=s.post('https://isaacphysics.org/api/v2.10.4/api/auth/segue/authenticate', json=payload,headers=headers)
print(p.status_code)
webpage=s.get('https://isaacphysics.org/api/v2.10.4/api/assignments/assign/group/24684/progress/download' ,headers=headers)
Пост-вызов возвращает статус 200, возвращает некоторые пользовательские данные, подтверждающие его работу, и создает необходимые файлы cookie, но 'get' не может пройти аутентификацию.
в firefox запрос выглядит так это:
Method: GET
URL: https://isaacphysics.org/api/v2.10.4/api/assignments/assign/group/25090/progress/download
Request Headers:
Host: isaacphysics.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: JSESSIONID=9g94t7JUNKJUNK3blif6bkx; isaacCookiesAccepted=1; SEGUE_AUTH_COOKIE="{\"currentUserId\":\"47878\",\"token\":\"0\",\"DATE_EXPIRES\":\"Tue May 12 13:41:48 +0000 2020\",\"HMAC\":\"Tr+eAeSQWU9JUNKJUNKJUNKJUNKJUNKJUNK2MQVrBQ=\"}"
Upgrade-Insecure-Requests: 1
и в python print(webpage.request.headers)
дает:
{'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*',
'Connection': 'keep-alive',
'Cookie': 'JSESSIONID=1jr9h3wJUNKJUNKJUNKrpfzx; SEGUE_AUTH_COOKIE="{currentUserId:47878,token:0,DATE_EXPIRES:Tue May 12 18:08:00 +0000 2020,HMAC:3LlaQTN/JUNKJUNKJUNKJUNKJUNKJUNKQW4mo=}"; isaacCookiesAccepted=1'}
Очевидная разница, кажется, в SEGUE_AUTH_COOK IE, потому что некоторые из escape-символы были опущены. Я пробовал несколько вещей, и если это проблема, я не могу понять, как ее исправить. Любая помощь очень ценится.