Я опишу простой метод скачивания любых файлов с сети по заранее подготовленному списку.
Буду писать на примере того, как это можно применить к парсеру Датакол. Например, по техническим причинам, Вы не смогли скачать файлы или Вы не хотите грузить парсинг скачкой файлов, Вы просто собрали данные, а возможно просто забыли, что нужно скачать и потом опомнились).
Что нужно для начала?
Для начала нам нужно составить список полных URL к файлам, каждый с новой строки, например:
https://site.com/files/file_image_1.jpg
https://site.com/files/file_image_2.jpg
https://site.com/files/file_image_3.jpg
…
Сохраняйте его в текстовый файл, который назовем, к примеру "url-list.txt".
Далее нам понадобится утилита WGET, думаю некоторые из Вас уже слышали о ней.
Переходим на сайт https://eternallybored.org/misc/wget/ и скачиваем нужную версию (32/64 бита). Последняя версия 1.21.3, только учтите, она не поддерживает XP, если у Вас такая, то берите прошлую версию.
Для лентяев приведу ссылки на последние версии
32 бита https://eternallybored.org/misc/wget/releases/wget-1.21.3-win32.zip
64 бита https://eternallybored.org/misc/wget/releases/wget-1.21.3-win64.zip
Подготовка к работе
Далее, просто распаковывайте архив в любую папку, например, c:\wget
Эта утилита консольная, у нее нет графического интерфейса, поэтому, чтобы запускать её из командной строки из любого места, нужно прописать в свойствах системы путь к папке:
- Правой кнопкой мыши на значке Мой компьютер (или Win + Pause Break)
- Выбираем Дополнительные параметры системы и в открывшемся окне Переменные среды
- В открывшемся окне выделяем переменную Path и нажимаем изменить, и создаем новой значение с нашим путем к папке c:\wget\
- Сохраняем
Если Вам кажется это слишком сложным и Вам это нужно на один раз, то можете не делать, а сразу приступить к следующим действиям.
Собираем все и начинаем
Итак, приступим, имеем следующие исходные данные:
- Файл со списком URL к файлам, предположим, что он у нас в корне диска С - c:\url-list.txt
- Создаем папку, куда будем скачивать файлы, предположим c:\files\
- Распаковали файлы с архива утилиты в папку c:\wget\
Когда эти 3 пункта готовы, открываем консоль. Для этого нажимаем комбинацию Win + R и вводим cmd и нажимаем enter
Сразу напишу готовую команду, а ниже расскажу, что к чему:
wget -i c:\url-list.txt --secure-protocol=auto -nc -c -P c:\files\
Если Вы не прописывали путь в свойствах системы, по моей инструкции выше, то для старта wget Вам нужно указать полный путь к ней, т.е
c:\wget\wget.exe вместо wget и команда для Вас будет выглядеть так
c:\wget\wget.exe -i c:\url-list.txt --secure-protocol=auto -nc -c -P c:\files\
Теперь разбираем переменные:
- -i и дальше путь для файла со списком URL для скачивания
- --secure-protocol=auto - это используем, если на сайте защищенный протокол HTTPS, если простой HTTP, то убирайте эту команду
- -nc - если файл уже есть, и он скачан полностью, то он не будет загружен заново
- -c - если файл закачан не полностью, то будет продолжена закачка
- -P и дальше папка, куда сохранять данные
Кому интересны все команды, а их ОЧЕНЬ много, то просто набираем в консоли
wget -h или c:\wget\wget.exe -h
Если Вам важна структура сохранения файлов как на источнике, то добавьте команду -x.
После того, как команда прописана, нажимаете enter и пойдет загрузка в указанную папку. На экране Вы будете видеть ЛОГ операций.
P.S строку для запуска лучше не писать в консоли, а приготовить ее заранее в любом редакторе, хоть в блокноте. Затем копируйте ее и в консоли нажимайте просто правую кнопку мыши или комбинацию Shift + Insert или Ctrl + V (эта комбинация раньше в консоли Windows не работала, сейчас на Win 10 работает, может работает и в ранних версиях, не знаю, когда добавили эту поддержку)
P.S чтобы собирать данные с серьезных порталов, однозначно нужны платные прокси.
Хорошие прокси от 33р за шт можно купить тут
И напоминаю, что по моей партнерской ссылке Вы получите 20% скидки на любой тариф, при покупке Датакол. Например, годовая лицензия будет стоить 6070руб. вместо 7590р.
Спасибо
Спасибо за статью. Сам пользуюсь этой программой уже давно, пока разобрался - кучу времени потратил, а тут все просто и ясно написано и разъяснено.
Спасибо автору!
Спасибо, 361 файл за пару минут!
Спасибо, реально работает, довольно быстро... 5 минут потратил, 1500 фото еще и по папкам...
Реально полезное!
Что делать если ссылка ведет не на сам файл и выглядит вот так index.php?page=ddownload&sn=1546971
Спасибо, очень спасли меня)
Почему-то файл в UTF-кодировке не принимал, потребовал ANSI. Список файлов создавал в Excel, чтобы автоматически набрать имена от 00000001.jpg до 00000332.jpg
ваш wget не умеет задавать одновременно название для файла и папку, в которую его кинуть. Редкостный зашквар! Можно было бы и упомянуть об этом.
Зашквар это Ваш комментарий без какой-либо конкретики. И он такой же мой как и Ваш. Я Вам ничего не должен. Есть описание по команде --help всех команд. Я привел пример своего использования wget.
Но дело в том, что и вы уважайте мою позицию: я тоже имею право высказать всё, что я об этом думаю. Я за свободу слова.
ограничение на количество символов, а вы ждете от меня какой-то конкретики. Короче, я хочу сказать, что можно было бы и упомянуть об этом - я бы не стал тратить время на эту инвалидную программу, не имеющую базового функционала. Попробуйте использовать одновременно -O и -P в одном запросе (т.е. попробуйте указать имя файла и папку сохранения), и увидите, что получится.
И зашкваром я назвал не ваш сайт, а только лишь эту программу.
Уважаемый Администратор. Я уже не раз слышал вот эту фразу: "я вам ничего не должен". Обычно я расцениваю это так, что человек не отвечает за свой базар. Так, накарябал что-то на своем сайте без всяких обязательств. И плевать он хотел на читателей.
Очень хорошо, я уважаю такую позицию. Действительно, оказалось полезным - хорошо, нет - значит, нет. И я, собственно, никаких претензий вам не предъявляю. Тем более, я нигде не сказал, что вы мне что-то должны. Я сказал, что.. ой, у вас тут еще и
как в самом списке URL для wget указать скачивание каждого файла в конкретную папку? спасибо.
Я не знаю такого способа. Только сохранение структуры URL, команда -x
Программа отличная, сохраняет структуру папок через "-х"
Другие копировальни сайтов вроде HTtrack не так точно сохраняют порядок папок.
Единственный нюанс - ею надо пользоваться без активных других парсеров, иначе работает очень медленно
еще одно спасибо)
вы б какую-нить рекламу\баннер повесили бы, хоть покликал бы в знак благодарности 🙂
Если Вам понравилось, то комментария для меня достаточно ) Можете поделиться статьей.
как задать новые имена скаченным файлам? Не сохраняет новые файлы т.к. у всех одинаковое имя
Для присвоения имени нужно использовать ключ -O. Но с массовым переименованием не так просто. Можно попробовать такой скрипт для запуска, если у вас есть список URL-адресов в файле @echo off setlocal enabledelayedexpansion set "url_file=urls.txt" set "output_base=file" set "extension=.jpg" set "counter=1" for /F "tokens=*" %%i in (%url_file%) do ( set "output_file=%output_base%!counter!%extension%" wget -O "!output_file!" "%%i" set /a counter+=1 ) endlocal url_file — файл, содержащий список URL-адресов. output_base и extension — базовая часть имени файла и расширение. counter — счетчик для создания уникальных имен файлов. Этот скрипт будет читать URL-адреса из файла urls.txt и сохранять их с уникальными именами, такими как file1.txt,… Подробнее »