Ну вот эта функция, что возвращает ссылку для загрузки файл:
function load_ai(id){
$.post('GetBLOB.htm', {
ID : id,
TABLE: "T_ANALYTICAL_INFORMATION"
}, function(data) {
window.location.href=data;
});
}
Полный url для HTTP запрос с POST параметрами:
https://analytic.nalog.ru/portal/GetBLOB.htm
Пробуем сделать загрузку одного файла с помощью Python библиотеки requests:
import requests
data = {
'ID': 1,
'TABLE': 'T_ANALYTICAL_INFORMATION',
}
load_url = 'https://analytic.nalog.ru/portal/GetBLOB.htm'
response = requests.post(load_url, data, verify=False)
file_name = response.text.replace('files/', '')
file_url = 'https://analytic.nalog.ru/portal/files/{}'.format(file_name)
response = requests.get(file_url, verify=False)
with open(file_name, 'wb') as file:
file.write(response.content)
Список документов вроде подгружается на страницу с помощью JavaScript, но так как документов немного (не более 136) можно как-то так:
import requests
for i in range(200):
try:
data = {
'ID': i,
'TABLE': 'T_ANALYTICAL_INFORMATION',
}
load_url = 'https://analytic.nalog.ru/portal/GetBLOB.htm'
response = requests.post(load_url, data, verify=False)
file_name = response.text.replace('files/', '')
file_url = 'https://analytic.nalog.ru/portal/files/{}'.format(file_name)
response = requests.get(file_url, verify=False)
with open(file_name, 'wb') as file:
file.write(response.content)
except Exception as error:
print(type(error), error)
Если надо не угадывать ID методом тыка, а получить валидный список, можно посмотреть в сторону Selenium. С помощью Selenium можно получить контент веб-страницы, генерируемый через JavaScript.