Как проверить скачался ли файл?

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 445
Благодарностей
1 288
Баллы
113
Доброго времени. Бот кликает на сайте кнопку скачать и файл скачивается в папку. Но:
1. Как узнать, что скачивание файла началось?
2. Как узнать скачался ли файл? (Так как команда {-Page.LastDownloadedFile-} - показывает последний путь скачивания файла, а он может совпасть с новым скачиванием)
3. Как узнать что файл скачался полностью и не было сбоев в момент скачивания?

Остается лишь идея:
1. Скачать файл в отдельную папку
2. С помощью Снипета {-Page.LastDownloadedFile-} - проверять на наличие файла в переменной, если есть - проверять данную папку на файл и если есть файл, несколько раз сверять вес файла, что бы сравнить не увеличивается ли он, если да - тогда ждем еще, если остался вес такой же - тогда файл скачан.
3. Переносим файл в нужную папку результата
 
Последнее редактирование:

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 767
Благодарностей
2 414
Баллы
113
Скачивание файла - это запрос.
Если это запрос, значит мы можем получить его через мониторинг трафика ( https://help.zennolab.com/en/v5/zennoposter/5.40.0.0/webframe.html#topic613.html )
После чего дёргать его статус через каждых несколько секунд ( https://help.zennolab.com/en/v5/zennoposter/5.40.0.0/webframe.html#topic670.html )
Естественно, что статус 200 - значит всё успешно.
Или ошибка - тогда в TrafficItem мы узнаем об этом.
 
  • Спасибо
Реакции: djaga

prostors

Client
Регистрация
16.12.2020
Сообщения
835
Благодарностей
27
Баллы
28
1. у меня начиналось всегда сразу после клика, по ссылке на js, которая вызывает скачивание, как у вас?
2. найти его по названию, папки куда может скачиваться я указал в другой теме
3. проверять содержимое файла, например, на пустоту
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 445
Благодарностей
1 288
Баллы
113
Скачивание файла - это запрос.
Если это запрос, значит мы можем получить его через мониторинг трафика ( https://help.zennolab.com/en/v5/zennoposter/5.40.0.0/webframe.html#topic613.html )
После чего дёргать его статус через каждых несколько секунд ( https://help.zennolab.com/en/v5/zennoposter/5.40.0.0/webframe.html#topic670.html )
Естественно, что статус 200 - значит всё успешно.
Или ошибка - тогда в TrafficItem мы узнаем об этом.
Но в данном случае, если сайт постоянно что-то пытается подгрузить, тогда мы не узнаем - то ли это файл качаем, то ли это страница пытается нам что-то подгрузить? Тут просто такое дело, доступа к сайту нету, что бы анализировать трафик, так как человек не хочет его давать и бот пишется в слепую без доступа к сайту и трафику. Или как-то можно отслеживать что качается именно файл и именно в нужную папку?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 445
Благодарностей
1 288
Баллы
113

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
632
Благодарностей
543
Баллы
93
вместо клика на кнопку - скопировать ссылку на скачивание, которая задана в параметре href
скормить эту ссылку для WebClient
отработка метода new WebClient().DownloadFile - и будет означать полное скачивание файла
ошибки скачивания мониторить по типу обычного исключения (Exception ex)
за основу можно взять части кода отсюда:

 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)