Как с помощью python скачать файл по JavaScript ссылке?
пытаюсь с сайта СПб-биржи скачать файл при помощи python.
Страница с ссылкой (скачать CSV)
На сайте тег ссылки выглядит так:
<a id="ctl00_BXContent_list_LinkButton1" href="javascript:__doPostBack('ctl00$BXContent$list$LinkButton1','')">Скачать CSV (разделители - точка с запятой)</a>
В ссылке - JS-код. Я попробовал скомпроментировать post-запрос, который вычитал сниффером, копируя все заголовки и данные. Но сервер выдаёт страницу html, а не файл. Стоит отметить, что токены и прочие данные при повторном нажатии не изменяются.
Помогите разобраться!
Ответы (1 шт):
Автор решения: Un ẞtrennen
→ Ссылка
Итак, проблема решилась. При копроментировании запроса, я не учёл cookies.
Если вам необходимо получить файл или другие данные по такой ссылке (<a href=javascript:...) необходимо:
- Запустить сниффер (например, wireshark)
- Нажать на ссылку вручную, чтобы отловить запрос, выполняемый при клике на ссылку, сниффером
- Скомпроментировать (скопировать) выполняемый запрос, УЧИТЫВАЯ ВСЕ ЗАГОЛОВКИ, КУКИ И ПЕРЕДАВАЕМЫЕ ДАННЫЕ В ТЕЛЕ ЗАПРОСА. Если выясняется, что данные могут меняться (например, токен валидации генерируется повторно при перезагрузке страницы) - парсить страницу с ссылкой и вытягивать из неё изменяемые данные перед выполнением запроса.