Итеративная загрузка ряда файлов с удаленного сервера

Задача: итеративно и полностью автоматически скачивать определенное количество файлов с удаленного сервера, не прибегая к стороннему софту. Попробуем решить задачу с помощью простого VBS-скрипта.

Предположим, мы хотим загрузить серию изображений с http://www.nomedelserver.abc/images/. Изучая URL-адреса, присутствующие на веб-страницах сайта, мы отмечаем, что изображениям присвоены следующие имена: img_01.jpg, img_02.jpg, img_03.jpg (…) img_50.jpg. Таким образом, мы имеем дело с пятьюдесятью адресами (от http://www.nomedelserver.abc/images/img_01.jpg до http://www.nomedelserver.abc/images/img_50.jpg).

Затем мы создаем файл с расширением .vbs, сохраняя его в папке по вашему выбору. Затем файл .vbs необходимо открыть в обычном текстовом редакторе и вставить внутрь содержимого. этого файла.

Подпрограмма в начале файла (HTTPDownload) отвечает за управление процедурой загрузки каждого удаленного файла. Он получает на вход URL-адрес (адрес), относящийся к элементу, который нужно извлечь, и локальный путь, по которому этот объект должен храниться (local_path).

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Шаги, выполняемые подпрограммой HTTPDownload, кратко проиллюстрированы в виде комментариев.

Скрипт, в первую очередь, сохраняет в переменной local_dir текущий путь, то есть папку, из которой был запущен файл .vbs.

Затем функция InputBox используется три раза: она выводит на экран простое диалоговое окно. В первом пользователь должен будет ввести адрес, который будет использоваться для извлечения элементов, хранящихся на удаленном сервере, при этом в нашем случае необходимо заменить номер изображения на «заполнитель» ?? (пример: http://www.nomedelserver.abc/images/img_??.jpg).


В следующих двух диалоговых окнах можно будет указать начальное и конечное число: в нашем случае соответственно 1 и 50. Таким образом скрипт заменит «заполнитель» ?? вставляется в имя файла время от времени цифры от «01» до «50» Все выясняется при соблюдении следующей инструкции:

Для i=start_number до end_number
HTTPDownload Replace(URL,»??», right(«0000» & i, l_end_number)), dir_locale
Следующий

После получения от пользователя URL-адреса, начального и конечного числа сценарий входит в цикл For … Next, используемый для итеративной загрузки (вызов подпрограммы HTTPDownload) каждого файла с удаленного сервера (в нашем случае пятьдесят изображений). ). Функция «Заменить» заменяет для каждого отдельного URL-адреса заполнитель «??» с текущим номером позиции.

right («0000» & i, l_end_number) автоматически добавляет нули к числам, которые не имеют того же количества цифр, что и конечное значение. Предположим, что начальное число равно 1, а конечное — 200: скрипт попытается получить с удаленного URL-адреса файлы с именами img_001.jpg, img_002.jpg, img_003.jpg до img_200.jpg.

При двойном щелчке по файлу .vbs удаленные объекты будут загружены в ту же папку, где был создан скрипт.

Представленное представляет собой простое решение, отвечающее практической потребности. Очевидно, что используемый подход имеет огромные возможности для улучшения.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *