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

Задача: итеративно и полностью автоматически скачивать определенное количество файлов с удаленного сервера, не прибегая к стороннему софту. Попробуем решить задачу с помощью простого 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).

Шаги, выполняемые подпрограммой 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 удаленные объекты будут загружены в ту же папку, где был создан скрипт.

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

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

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

Ваш адрес email не будет опубликован.