Универсальный сетевой загрузчик

В продолжение статьи «С чего начинается Интернет» за авторством KITA, хочется сказать, что автор прав относительно всего, кроме «звонилки» и загрузчика. Скажите мне, сколько весит ваша программа закачки файлов из Сети? Мегабайт, два, десять? Моя весит 95… килобайт. Удивлены? Если да, то читайте до конца.

Да, я не ошибся во введении, просто я пользуюсь консольной программой GNU Wget. Как можно понять по приставке GNU, эта программа пришла в мир мелкомягких из Linux’a. О себе программа заявляет так: «GNU Wget 1.7.1, a non-interactive network retriever», что переводится как «неинтерактивный сетевой загрузчик». Рассмотрим её преимущества перед разнообразными и многочисленными *Get’ами.

Начнём с настраиваемых опций.
По команде wget --help черный экран командной строки заполняется кучей опций. Опции делятся на 8 групп, содержание которых понятно из названий. Вот они: “Startup”, “Logging and input file”, “Download”, “Directories”, “HTTP options”, “FTP options”, “Recursive retrieval”, “Recursive accept/reject”. Как видно из списка, программа универсальна и умеет все, что надо. Так как газета маленькая (укор издателям!), то все ключи я рассматривать не буду.

Начнём с цели №1 — получения одиночного файла из сети. Для этого нужно запустить Wget с URL (сетевым адресом файла) в качестве параметра. URL может указывать как на http-, так и на ftp-протоколы. Если связь плохая, то ставим ключ --tries=0, который снимает ограничения на количество попыток загрузки. А если с прошлого коннекта остался недогруженный файл, то запускаем с ключом докачки -c. Интересно, что Wget может докачивать файлы, полученные другой программой.

Цель №2 — получение части сайта. Для этого есть ключи -r, -A, -R, -l.
-r говорит, что нужно рекурсивно просмотреть все ссылки, -A разрешает определенные расширения получаемых файлов, -R их запрещает (ну зачем вам .wav качать?), -l ограничивает «глубину» загрузки (без ограничения можно и весь интернет выкачать), -k превращает неотносительные ссылки в относительные (http://site.ru/a/b/c.html => /a/b/c.html">site.ru/a/b/c.html => /a/b/c.html). Только не говорите мне, что FlashGet способен на столь же многое!

Цель №3 — зеркалирование сайта. Его можно сделать, пользуясь набором ключей из цели №2, а можно и при помощи единственного ключа --mirror. Я лично проверил эту функцию и скажу, что результат меня устроил… Так что никакой Teleport Pro не нужен.
Различные фишки, вроде паролей, «cookies», поддержки proxy только подтверждают назначение программы. В качестве заключения хочется поделиться парой-тройкой советов, как пользоваться программой.

Совет №1. Создайте где-нибудь каталог Downloads, в который поместите Wget. В этом каталоге будут храниться все ваши файлы. Допустим, надо скачать с сайта quake-hq.com пятнадцать карт для Quake III Defrag’а. Чтобы не запутаться впоследствии в названиях файлов, создайте подкаталог defrag и запускайте Wget c ключом -P defrag, в результате чего все файлы окажутся в нужном каталоге.

Совет №2. Если файл был недогружен, то я в директории Downloads в файле "toget.bat " добавляю строчку wget -P somedir -c someurl. И при подключении к интернету запускаю его.

Совет №3. Вы, конечно же, наслышаны о многопоточном закачивании. Так вот, это все бред сивого ламера, если у вас нет канала шире 128 Кбит/c. Дело в том, что если модем получает данные со скоростью 5 Кбайт/c, то и максимальная скорость будет такой же. Так что вы можете загружать пять потоков со скоростью 1 Кбайт/c или же в один поток, загружая модем на полную катушку.

Совет №4. Можно создать в Downloads файл toget.txt, где стоит записать URL’ы нужных файлов. Wget содержит ключ --input-file=FILENAME, который будет этот файл читать.

Совет №5. Используйте Wget совместно с WWWOFFLE (см. «МБ» №2'2004). В моей прошлой статье был описан сквозной proxy, предназначенный для кэширования проходящего через него трафика. Так вот, чтобы получить из лап этого монстра добытые потом и кровью сайты, можно воспользоваться Wget. Для этого надо создать .bat-файл, в котором указать SET HTTP_PROXY=localhost:8080, а также wget.exe -Y on -P www.tckb.ru -mirror www.tckb.ru, чтобы получить все загруженные с определенного сайта (в данном случае www.tckb.ru) страницы.

Совет №6. В последнее время я, экономя деньги, подключаюсь к Сети ночью. Точнее говоря, я сплю, а программа подключается. Для этого в BIOS’е ставлю “будильник”, а в Linux ставлю автозапуск. Таким образом, я экономлю деньги, время, не трачу здоровье, а просто спокойно сплю…
За время жизни в интернете я попробовал и ReGet, и FlashGet, но честно вам скажу, что Wget ничуть не хуже, а даже лучше. Я, конечно, понимаю привязанность большинства пользователей к оконному интерфейсу и Windows, но любой юзер — зачаток линуксоида, а потому стоит привыкать к командной строке и соответствующим программам. Вывод из всего этого — запустите в последний раз ваш загрузчик, чтобы cкачать Wget. Не пожалеете! На текущий момент доступна версия Wget 1.9.1. Но лучше загрузите, например, через www.filesearch.ru, Wget версии 1.7.1, поскольку данный экземпляр не требует дополнительных библиотек и поменьше весит.

WGET 1.7.1
Free source
763 Кбайт
Все Windows, *nix
wget.sunsite.dk


Рекомендуем почитать: