И ведь лежит у нас такая программа на форуме, в *nix... Но многолетняя война (IMHO совершенно глупая) между пользователями nix систем и пользователями Windows (презрительно называемыми ими "форточками" приносит свои результаты...
Вот, никсоиды...
можно же рассказать подробнее, каким интересным инструментом они владеют и, какая это чудесная штука... Глядишь, и добавилось бы у них почитателей...А прогу WGET открыл для себя сегодня... Хороший знакомый посоветовал попробовать её мне, а я хочу поделиться с вами.
Итак - Инет-вампир, поглотитель сайтов, вот, что такое этот чудесный WGET! Добрые люди смогли отобрать его у пингвинов и реализовать под Виндой... Работает он, конечно же из командной строки, линуксоидная традиция
, но, сие, совершенно не напрягает, что вы и сами поймёте, прочитав подробнейший help.Зато, какие результаты - я выкачал давно интересовавший меня сайт до самого основания для своей дочи ... а в контентенте у него почти гиг!!! smallbay.ru - виртуальный музей живописи и многого другого...
Wget представляет из себя утилиту управляемую командной строкой. Если для кого-то это является недостатком, то с моей точки зрения это наоборот достоинство для программы подобного класса. Когда вы нанимаете на работу носильщика вам не интересна эстетичность его физиономии, а больше занимает какой вес и как долго он может носить. Если вам необходима симпатичная мордашка, то наймите секретаршу. Однако я сильно сомневаюсь, что она будет в состоянии принести вам что-то большее, чем папку с бумагами.
Благодаря тому, что у Wget "междумордие" (interface) :-) отсутствует как класс, программа занимает значительно меньше пространства на вашем диске и, что более важно, меньше отжирает оперативной памяти во время своей работы. Кроме того, интерфейс программной строки позволяет легко создавать сценарии упрощающие и автоматизирующие выполнение каких-либо однотипных действий. Например, такие сценарии очень удобно запускать из планировщика, скажем, в ночное время с целью синхронизации данных с удаленного сайта с данными на локальном диске.
Wget создавался как универсальный инструмент для получения файлов из Интернет и он полностью отвечает своему предназначению. Его возможности простираются от скачивания отдельно взятого файла, до операции зеркалирования (mirroring), т.е. создания локальной точной копии удаленного сайта. Все это работает как для протокола FTP, так и для протокола HTTP. Поддерживается автоматическая докачка файлов с момента обрыва, процесс получения которых был прерван до его завершения в результате потери соединения. При выполнении операции зеркалирования Wget автоматически выполняет сравнение уже существующих на локальном диске файлов и каталогов с файлами и каталогами на скачиваемом сайте докачивая только разницу. Поддерживается работа через прокси и из-за фильтрующего брандмауэра. Поддерживается эмуляция конкретно заданного броузера, что позволяет представить Wget для WWW сервера, с которым он работает, как, скажем, Netscape Communicator или Internet Explorer. А так же многое, многое другое.
Еще одним немаловажным достоинством программы является то, что она распространяется по лицензии GNU и поэтому совершенно бесплатная.
УСТАНАВЛИВАЕМ И КОНФИГУРИРУЕМ
Скопируйте архив с исполняемым модулем wget к себе на локальный диск из любого приведенного в ссылках источника и распакуйте его. Из всех файлов в архиве вам нужен только wget.exe. Остальные файлы вам понадобятся в случае если вы соберетесь сами откомпилировать программу из ее исходников. Данная операция выходит за рамки темы статьи и я ее описывать не буду, все необходимое вы сможете узнать из файла readme.wget-windows и на домашней странице автора.
Скопируйте файл wget.exe в какой-нибудь каталог, который доступен через переменную окружения PATH. Например, непосредственно в каталог Windows, обычно это C:\WINDOWS. Удобно для программ представляющих из себя единственный исполняемый файл, как сам Wget или, скажем, утилиты архивации, создать отдельный каталог, к примеру, C:\BIN и задать доступ к нему в переменной окружения PATH. Делается это в файле C:\AUTOEXEC.BAT, в котором должна содержаться строка примерно такого содержания:
SET PATH=C:\WINDOWS;C:\WINDOWS\SYSTEM;C:\BIN;
Если вы внесли изменения в AUTOEXEC.BAT, то необходимо перегрузить Windows, чтобы эти изменения возымели силу. Доступность каталогов через переменную окружения PATH полезна тем, что позволяет запускать программы находящиеся в них непосредственно из командной строки просто по имени программы независимо от текущего каталога.
Теперь желательно создать конфигурационный файл для Wget. Сильной необходимости в нем нет, но его наличие позволит упростить использование самой программы. Шаблонный файл конфигурации можете взять здесь. Главной прелестью программного обеспечения UNIX подобных систем является то, что оно использует обычные текстовые конфигурационные файлы, что сильно облегчает настройку. Структура файла очень проста. Строки начинающиеся с символа '#' являются комментарием и игнорируются программой. Конфигурационные параметры имеют структуру:
имя_параметра = значение
Внутри файла wgetrc вы найдете комментарии по поводу значения всех приведенных там аргументов, однако ими не исчерпываются параметры конфигурации Wget, полный список которых вы сможете найти в "Руководстве пользователя".
Отредактируйте обычным текстовым редактором, например, notepad.exe этот файл в соответствии с вашими нуждами, следуя комментариям приведенным в нем. Теперь нужно правильно разместить этот файл так, чтобы Wget смог его находить автоматически и использовать указанные в нем значения. У вас есть две возможности:
* Установить переменную среды окружения WGETRC, которая содержит в себе полный путь доступа к данному файлу. В этом случае файл может иметь любое имя.
* Установить переменную среды окружения HOME указывающую на какой-либо каталог, в котором разместить данный файл под именем 'wgetrc'.
Как и в случае с путем доступа переменные среды окружения необходимо прописывать в файле AUTOEXEC.BAT. Для первого и второго случая строки в AUTOEXEC.BAT должны выглядеть подобно ниже приведенным.
SET WGETRC=C:\BIN\WGETRC
SET HOME=C:\HOME
Ну вот мы и добрались до самого интересного - применения Wget на практике. Ради чего, собственно, все это и затевалось. Начнем с самого простого.
Выгрузка отдельного файла
Как уже упоминалось ранее, Wget является утилитой управляемой командной строкой, поэтому всю необходимую информацию ему необходимо передавать через нее в момент запуска программы. Для упрощения работы, с целью постоянного доступа к командной строке, откройте окно "Сеанс MS-DOS". В данном случае в командной строке необходимо указать URL требуемого для выгрузки файла. Например, для того чтобы выгрузить архив со справочным файлом Wget в формате MS Windows Help, URL которого приведен в ссылках, командная строка будет иметь вид:
wget httр://www.sunsite.auc.dk/wget/wgethelp.zip
Обратите внимание на обязательность указания в URL префикса протокола выгрузки, в данном случае это http://. Этот префикс необходим Wget для определения типа протокола для доступа к ресурсу. После того как вы нажмете клавишу Enter, Wget начнет выгрузку и вы увидите в окне примерно следующее.
--23:53:22-- httр://www.sunsite.auc.dk:80/wget/wgethelp.zip
=> `wgethelp.zip'
Connecting to www.sunsite.auc.dk:80... connected!
HTTP request sent, awaiting response... 301 Moved Permanently
Location: httр://sunsite.auc.dk/wget/wgethelp.zip [following]
--23:53:23-- httр://sunsite.auc.dk:80/wget/wgethelp.zip
=> `wgethelp.zip'
Connecting to sunsite.auc.dk:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 80,656 [application/zip]
0K -> .......... .......... .......... .......... .......... [ 63%]
50K -> .......... .......... ........ [100%]
23:53:49 (3.38 KB/s) - `wgethelp.zip' saved [80656/80656]
FINISHED --23:53:49--
Downloaded: 80,656 bytes in 1 filesЗдесь в начале идет шапка описывающая процесс соединения с ресурсом из которой хорошо видно, что при доступе к URL httр://www.sunsite.auc.dk/wget/wgethelp.zip удаленный сервер дал команду перенаправления для Wget (301 Moved Permanently), выполняя которую Wget переключился на другой ресурс - httр://sunsite.auc.dk/wget/wgethelp.zip. Здесь произошел успешный доступ (200 OK), Wget получил информацию о размере и типе выгружаемого файла и приступил к выгрузке. Процесс самой выгрузки отображается точками, где каждая точка - это 1 Кбайт полученных данных. Точки объединяются в блоки по 10 Кбайт, соответственно каждая строка - это 50 Кбайт, а в конце каждой строки Wget выводит общее количество уже полученных данных в процентном соотношении от полного размера файла. По завершении получения файла Wget выдает строку в которой указано время завершения процесса, средняя скорость получения данных, а так же ожидаемый и реально полученный их размер. Последние две строки содержат информацию о всем процессе выгрузки и представляют интерес, когда производится получение более одного файла за сессию. Чем, собственно, мы теперь и займемся.
Выгрузка нескольких файлов
Для выполнения этой операции существует два способа:
1. Перечислить URL всех файлов подлежащих выгрузке последовательно в командной строке, разделив их пробелами. Этот способ пригоден для получения двух, максимум трех-четырех файлов. Для большего количества он не удобен, а чаще всего и не пригоден из-за существующего в Windows (DOS) ограничения на длину командной строки.
2. Передать Wget список необходимых файлов через внешний файл.
Второй способ представляет наибольший интерес, поскольку не накладывает совершенно никаких ограничений на количество выгружаемых файлов. Формат файла списка чрезвычайно прост. Это обычный текстовый файл, в котором перечисляются URL для выгружаемых файлов по одному URL на каждую строку. Например, чтобы выгрузить справочные файлы Wget в формате 'GNU info' (это обычный текст со специальной разметкой) со страницы "WGET software for FTP and Web Auto-mirroring" индексный файл должен иметь следующую структуру.
httр://www.ccp14.ac.uk/mirror/wgetinf0.txt
httр://www.ccp14.ac.uk/mirror/wgetinf1.txt
httр://www.ccp14.ac.uk/mirror/wgetinf2.txt
httр://www.ccp14.ac.uk/mirror/wgetinf3.txt
Если файл с таким содержимым сохранить в текущем каталоге под именем 4wget, то командная строка запуска Wget будет иметь вид:
wget -i 4wget
Здесь ключ "-i" сообщает Wget, что URL для извлекаемых данных следует читать из файла 4wget. Слегка забегая вперед отмечу, что в качестве индексного файла можно использовать и файлы в формате HTML, что удобно когда, скажем, перечень необходимых нам файлов уже содержится на описывающей их WWW странице.
После запуска Wget нажатием клавиши Enter, вывод Wget будет иметь следующий вид.
--00:49:11-- httр://www.ccp14.ac.uk:80/mirror/wgetinf0.txt
=> `wgetinf0.txt'
Connecting to www.ccp14.ac.uk:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 2,588 [text/plain]
0K -> .. [100%]
00:49:13 (15.80 KB/s) - `wgetinf0.txt' saved [2588/2588]
--00:49:13-- httр://www.ccp14.ac.uk:80/mirror/wgetinf1.txt
=> `wgetinf1.txt'
Connecting to www.ccp14.ac.uk:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 52,101 [text/plain]
0K -> .......... .......... .......... .......... .......... [ 98%]
50K -> [100%]
00:49:36 (2.37 KB/s) - `wgetinf1.txt' saved [52101/52101]
--00:49:36-- httр://www.ccp14.ac.uk:80/mirror/wgetinf2.txt
=> `wgetinf2.txt'
Connecting to www.ccp14.ac.uk:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 39,691 [text/plain]
0K -> .......... .......... .......... ........ [100%]
00:49:46 (4.54 KB/s) - `wgetinf2.txt' saved [39691/39691]
--00:49:46-- httр://www.ccp14.ac.uk:80/mirror/wgetinf3.txt
=> `wgetinf3.txt'
Connecting to www.ccp14.ac.uk:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 28,634 [text/plain]
0K -> .......... .......... ....... [100%]
00:49:52 (7.55 KB/s) - `wgetinf3.txt' saved [28634/28634]
FINISHED --00:49:52--
Downloaded: 123,014 bytes in 4 filesФактически отчет о работе идентичен ранее приведенному, за исключением того, что состоит из четырех операций выгрузки, соответственно количеству выгружаемых файлов. Последние две строки здесь показывают время завершения работы, общий объем полученных данных и количество файлов.
Как видно из приведенного примера, Wget предоставляет быстрый и удобный способ для выгрузки большого количества файлов за одну операцию. Однако как быть в случае если нам, скажем, необходимо получить копию WWW страницы или вообще сайта? В данном приложении описанный способ не удобен или вообще не пригоден. Здесь-то мы и подошли к наиболее интересному аспекту применения Wget.
Зеркалирование
Это наиболее полезная и мощная возможность Wget. Операция зеркалирования позволяет получить на локальном диске копию WWW страницы или сервера. Хотя работа выполняемая Wget в данном случае более сложна, чем в предыдущих примерах, однако запуск самой операции не намного более сложен.
Для запуска операции нам понадобится URL корня удаленной страницы или сервера. Рассмотрим это на примере получения копии страницы "Auto-Mirrored Web/FTP Sites", компонентом которой является ранее упомянутая страница "WGET software for FTP and Web Auto-mirroring". Ее URL - httр://www.ccp14.ac.uk/mirror/. Однако в HTML документах страницы существует несколько ссылок на архивы которые нас не интересуют, и поэтому желательно их исключить из операции выгрузки. Команда для выполнения этой операции будет следующей.
wget -m -np -R "*.tar.*" httр://www.ccp14.ac.uk/mirror/
Здесь: '-m' - команда выполнения операции зеркалирования; '-np' - команда разрешающая Wget следовать только вниз по дереву каталогов при переходе по ссылкам внутри документа; '-R "*.tar.*"' - команда исключения всех файлов попадающих под маску "*.tar.*". Выполнив команду вы увидите процесс выгрузки подобный приведенному в предыдущем примере. По завершению процесса в каталоге, откуда был запущен Wget, вы найдете новый подкаталог 'www.ccp14.ac.uk', а под ним каталог 'mirror', в котором будут находиться все выгруженные файлы.
Всё это более подробнее, с примерами конфигураций WGET вы сможете найти тут
_
http://vap.org.ru/wget/05-06.shtmlСкачать wgetwin-1_5_3_1 104 килобайта!!!
wgetwin_1_5_3_1_binary.zip ( 104.18кб )
Кол-во скачиваний: 80