Wget не скачивать существующие файлы
* This source code was highlighted with Source Code Highlighter .
Для работы скрипта необходимо сделать его исполняемым и создать файл "./list/download.lst" со списком ссылок для скачивания.
Запуск:
sh downloader start [количество одновременных скачиваний]
или, как правильно заметил Mezomish, так:
./downloader start [количество одновременных скачиваний]
Параметр после 'start' необязательный (если его не указать — используется «1»).
Т.е. `sh downloader start 2` запустит скрипт с одновременным скачиванием 2-х файлов.
Остановка:
sh downloader stop
или
./downloader stop
При завершении скрипта при помощи «Ctrl+C» закачки не завершаются, т.к. работают в фоне, поэтому необходимо выполнить вышеуказанную команду команду для остановки скачивания.
Я решил не загромождать скрипт, но в принципе, не сложно реализуется работа со списками (show — вывод на экран, add — добавление закачки, wipe — очистка). А так он рабочий хоть и с минимальной функциональностью.
Т.к. это мой первый bash-скрипт, то любые замечания/пожелания/рекомендации очень приветствуются.
Дальше я вкратце опишу принципы работы скрипта, чтобы желающим легче было модифицировать его под свои нужды.
В константах указаны:
log_dir — папка с логами wget'a (по умолчанию "./log")
list_dir — папка со списками download_list, active_list, done_list, error_list (по умолчанию "./list")
output_dir — папка куда будут сохраняться скачиваемые файлы (по умолчанию ".")
download_list список ссылок для скачивания
active_list — список активных закачек
done_list — список завершенных закачек
error_list — список неудавшихся закачек
timeout — время перед повторной попыткой скачивания неудавшейся закачки
В начале работы скрипт останавливает ранее запущенные его копии, а также закачки из active_list (конечно если такие имеются) с переносом их в download_list. Это делается на случай повторного запуска скрипта до завершения скачивания ранее запущенным процессом. Дальше в цикле создается необходимое количество фоновых закачек. Каждый такой фоновый поток реализуется функцией download_thread(). Ее работа заключается в скачивании файлов из списка пока списки download_list и error_list не станут пустыми. Таким образом основная часть скрипта, проверяя эти файлы узнает закончилась ли скачка. Перед запуском wget'a ссылка переносится из файла download_list в файл active_list. После завершения работы wget'a ссылка переносится, либо в done_list (если код возврата был '0'), либо в error_list (если код возврата был не равен '0').
После того как все скачано (списки download_list и error_list пусты) скрипт завершает свою работу.
На этом все. При желании любой, кто немного знаком со скриптописанием, может добавить в него нужные для себя функции.
wget — текстовая программа для скачивания файлов.
Если возможностей wget не хватает, то можно использовать curl.
OПЦИИ
НАЙДЕННЫЕ ОШИБКИ
Вы можете отправлять отчеты об ошибках в GNU Wget на адрес " [email protected] "> (на английском).
Перед отправкой:
1. Убедитесь, что поведение программы действительно ошибочно. Если Wget «вылетает», то это ошибка. Если поведение Wget не соответствует документации, то это ошибка. Если все работает странно, но вы не уверены, как оно должно работать на самом деле, то это тоже может быть ошибкой. 2. Попытайтесь повторить ситуацию с выдачей ошибки за минимальное количество действий.Не спешите отправлять .wgetrc, попробуйте проделать все действия, приведшие к ошибке с другим файлом настроек (или вообще без него). 3. Запустите Wget с параметром -d и отправьте журнал (или его части). Намного легче отыскивать ошибки при наличии таких журналов. 4. Если Wget выдал ошибку, то попытайтесь запустить его в отладчике, например "gdb `which wget` core" и введите "where" для получения обратной трассировки.
Примеры
Просто скачать файл wget-ом:
Для продолжения оборвавшейся закачки пишем:
Как и в других программах, ключи имеют короткую и длинную формы, и вместо -с можно написать -continue . Длинные ключи проще запомнить, но дольше писать. Можно легко смешивать различные формы написания.
Чтобы выкачать файлы из списка, содержащего прямые ссылки:
Здесь указывается только файл, в котором содержатся ссылки. Файл может так же быть HTML -страницей, в которой есть ссылки. Они будут выкачаны указанной выше командой.
Использование а-ля «Teleport Pro for Linux».
При скачивании веб-сайтов возможностей больше, и поэтому требуется больше ключей. Опять-таки, запоминать их все не обязательно, можно сделать скрипт (а лучше несколько - под разные случаи) и вызывать их.
Так вот, если имеется веб-сайт, и хотелось бы иметь его локальную копию на компьютере, чтобы, отключившись от сети, можно было не торопясь его почитать.
Зеркалирование сайтов на локальную машину:
-m эквивалентно -r -N -l inf -nr , эти опции описаны ниже.
При этом ссылки останутся абсолютными - то есть, будут указывать на Интернет-адреса, и удобно просматривать на локальной машине будет затруднительно.
Копирование сайта для локального просмотра (с заменой интернет-ссылок на локальные адреса скачанных страниц):
При этом будет включена рекурсивная выгрузка (ключ -r, –recursive),
Параметры рекурсивной загрузки
-r ––recursive Включить рекурсивную загрузку. -l depth ––level=depth Максимальная глубина рекурсивной загрузки depth. По умолчанию ее значение равно 5. ––delete-after Удалять каждую страницу (локально) после ее загрузки. Используется для сохранения новых версий часто запрашиваемых страниц на прокси. Например:
Параметр -r включает загрузку по умолчанию, параметр -nd отключает создание папок.При указанном параметре ––delete-after будет игнорироваться параметр ––convert-links. -k ––convert-links После завершения загрузки конвертировать ссылки в документе для просмотра в автономном режиме. Это касается не только видимых ссылок на другие документы, а ссылок на все внешние локальные файлы.Каждая ссылка изменяется одним из двух способов:
то 1.html, 1.jpg, 2.html, 2.jpg и 3.html загрузятся. Как видим, 3.html без 3.jpg, т.к. Wget просто считает число прыжков, по которым он перешел, доходит до 2 и останавливается. А при параметрах:
Все файлы и рисунок 3.jpg страницы 3.html загрузятся. Аналогично
приведет к загрузке 1.html, 1.jpg, 2.html и 2.jpg. Чтобы загрузить одну указанную страницу HTML со всеми ее элементами, просто не указывайте -r и -l:
При этом Wget будет себя вести, как при параметре -r, но будут загружены страница и ее вспомогательные файлы. Если вы хотите, чтобы вспомогательные файлы на других серверах (т.е. через абсолютные ссылки) были загружены, используйте:
И в завершении, нужно сказать, что для Wget внешняя ссылка — это URL , указанный в тегах "", "" и "", кроме "".
ПЕРЕВОД
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
Примеры разделены на три категории согласно их сложности.
6 Answers 6
Try the following parameter:
-nc , --no-clobber : skip downloads that would download to existing files.
As noted on the linked question, I disagree - If no-clobber is used and the filename exists it exits. No HEAD request even. Even if this wasn't the case, check if you have a file to begin with :-) [ ! -e "$(basename $URL)" ] && wget $URL
Great answer! Going to disagree with ma11hew28. I just tested this on a list of 3,000 URL's with GNU Wget 1.14 and wget -nc -i list.txt . Don't think it's possible for a server to crawl 3k links in a tenth of a second!
Additionally, -N, --timestamping says don't re-retrieve files unless newer than local if you are looking to sync, in-case some remote files might ACTUALLY be worth re-downloading (edit: I see another answer now that says the same).
The -nc , --no-clobber option isn't the best solution as newer files will not be downloaded. One should use -N instead which will download and overwrite the file only if the server has a newer version, so the correct answer is:
Then running Wget with -N, with or without -r or -p , the decision as to whether or not to download a newer copy of a file depends on the local and remote timestamp and size of the file. -nc may not be specified at the same time as -N .
-N , --timestamping : Turn on time-stamping.
When server is not configured properly -N may fail and wget will always redownload. So sometimes -nc is better solution.
Whether this is best depends on context. For example, I'm downloading ~1600 files from a list, and then updated the list to include some more files. The files don't change so I don't care about the latest version and I don't want it to check the server for new versions of the 1600 files that I already have.
@AjayKumarBasuthkar: When the server doesn't support any way of checking for newer file, wget will complain Last-modified header missing ; this is exactly the situation outlined.
Using the -c flag when the local file is of greater or equal size to the server version will avoid re-downloading.
This is especially great when you are downloading a bunch of files with the -i flag. wget -i filelist.txt -c will resume a failed download of a list of files.
I am downloading from a server which provides neither the Length header nor the Last-modified header (mentioned elsewhere on this page). So, I'd like to check only if a file with the same name exists on the disk and skip the re-download if it does. Still looking for that solution.
-c means continue . If the file is was changed to a bigger file with different content you get will start download at the end of the local file and add the new file contents. You may end up garbage.
When running Wget with -r or -p , but without -N , -nd , or -nc , re-downloading a file will result in the new copy simply overwriting the old.
So adding -nc will prevent this behavior, instead causing the original version to be preserved and any newer copies on the server to be ignored.
I had issues with -N as I wanted to save output to a different file name.
- A file of that name does not already exist locally.
- A file of that name does exist, but the remote file was modified more recently than the local file.
If the file exists does not exist test will evaluate to FALSE so wget will be executed.
If a file is downloaded more than once in the same directory, wget's behavior depends on a few options, including -nc . In certain cases, the local file is "clobbered" (overwritten), upon repeated download. In other cases, it is preserved.
When running wget without -N , -nc , or -r , downloading the same file in the same directory results in the original copy of file being preserved and the second copy being named file.1. If that file is downloaded yet again, the third copy is named file.2, etc. When -nc is specified, this behavior is suppressed, and wget refuses to download newer copies of file. Therefore, " no-clobbe r" is a misnomer in this mode: it's not clobbering that's prevented (as the numeric suffixes were already preventing clobbering), but rather the multiple version saving that's being turned off.
When running wget with -r , but without -N or -nc , re-downloading a file results in the new copy overwriting the old. Adding -nc prevents this behavior, instead causing the original version to be preserved and any newer copies on the server to be ignored.
When running wget with -N , with or without -r , the decision as to whether or not to download a newer copy of a file depends on the local and remote timestamp and size of the file. -nc may not be specified at the same time as -N .
Note that when -nc is specified, files with the suffixes .html or .htm are loaded from the local disk and parsed as if they had been retrieved from the web.
Основные параметры
АВТОРЫ
ФАЙЛЫ
/usr/local/etc/wgetrc По умолчанию это расположение глобального файла настроек. .wgetrc Файл настроек пользователя.
Параметры загрузки папок
Если вы хотите просто избавиться от структуры папок, то вы можете заменить этот параметр на -nd и -P. В отличие от -nd, -nd работает с подкаталогами — например, при -nH ––cut-dirs=1 подкаталог beta/ запишется, как xemacs/beta. -P prefix ––directory-prefix=prefix Определяет начальную папку, в которой будет сохранена структура папок сайта (или просто файлы). По умолчанию этот параметр равен . (текущая папка).
Указание пустой строки в значении заголовка очистит все определенные пользователем до этого заголовки. ––proxy-user=user ––proxy-passwd=password Определяет имя пользователя user и пароль password для авторизации сервере прокси. Будет использован тип авторизации "basic". ––referer=url Добавляет заголовок `Referer: url‘ в запрос HTTP . Используется при загрузке страниц, которые передаются правильно только если сервер знает, с какой страницы вы пришли. -s ––save-headers Сохранять заголовки, отправляемые серверам HTTP . -U agent-string ––user-agent=agent-string Идентифицироваться, как agent-string при запросе на HTTP сервер.Протокол HTTP позволяет определять себя использованием заголовка агента. Wget по умолчанию идентифицируется, как Wget/version, где version — это версия Wget.Некоторые серверы выдают требуемую информацию только для обозревателей, идентифицирующихся как "Mozilla" или Microsoft "Internet Explorer". Этот параметр позволяет обмануть такие серверы.
Профессиональное использование
* Для хранение зеркала страницы (или папки FTP ), то используйте ––mirror (-m), что заменяет -r -l inf -N. Вы можете добавить Wget в crontab с запросом на проверку обновлений каждое воскресенье:
* Вы также хотите, чтобы ссылки конвертировались в локальные. Но после прочтения этого руководства, вы знаете, что при этом не будет работать сравнение по времени. Укажите Wget оставлять резервные копии HTML файлов перед конвертацией. Команда:
* А если не работает локальный просмотр файлов HTML с расширением, отличным от .html, например index.cgi, то нужно передать команду на переименование всех таких файлов (content-type = text/html) в имя.html.
С краткими аналогами команд:
АВТОРСКИЕ ПРАВА
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
Это свободное программное обеспечение; условия копирования ищите в исходных текстах. НЕ существует никаких гарантий; программа НЕ предназначена для ПРОДАЖ.
but how to make wget skip download if pic.jpg is already available?
Параметры запрета/разрешения рекурсивной загрузки
-A acclist ––accept acclist -R rejlist ––reject rejlist Список имен файлов, разделенных запятыми, которые следует или не следует загружать. Разрешается задание имен файлов по маске. -D domain-list ––domains=domain-list Список доменов domain-list, с которых разрешено загружать файлы. Разделяется запятыми. Этот параметр не включает -H. ––exclude-domains domain-list Список доменов, с которых не разрешено загружать файлы ––follow-ftp Следовать по ссылкам FTP с HTML страниц. Иначе, ссылки на файлы по протоколу FTP игнорируются. ––follow-tags=list Wget имеет встроенную таблицу тегов HTML , в которых он ищет ссылки на другие файлы. Вы можете указать дополнительные теги в разделенном запятыми списке list в этом параметре. -G list ––ignore-tags=list Обратно ––follow-tags. Для пропуска тегов HTML при рекурсивной загрузке, укажите их в разделенном запятыми списке list.Раньше параметр -G был лучшим для загрузки отдельных страниц с их вспомогательными файлами. Вы можете посмотреть, как это было, указав команду
Но теперь лучшим параметром для загрузки одной страницы полностью считается ––page-requisites. -H ––span-hosts Разрешает посещать любые сервера, на которые есть ссылка. -L ––relative Следовать только по относительным ссылкам. При этом параметре файлы с других серверов точно не будут загружаться. -I list ––include-directories=list Список папок, разделенных запятыми, из которых разрешено загружать файлы. Элементы списка list могут содержать символы масок. -X list ––exclude-directories=list Список папок, разделенных запятыми, исключаемых для загрузки (см. Ограничение по папкам). Элементы списка list могут содержать символы масок. -np ––no-parent Не подниматься выше начального адреса при рекурсивной загрузке.
Параметры FTP
-nr ––dont-remove-listing Не удалять временные файлы .listing, генерируемые при загрузке по FTP . Эти файлы содержат информацию о папках серверов FTP . Неудаление поможет вам быстро определить обновление папок сервера (т.е. определять., что ваше зеркало является таковым).Если вы не удаляете .listing, то помните о своей безопасности! Например, с таким именем можно создать символическую ссылку на /etc/passwd или что-то еще. -g on/off ––glob=on/off Включает или выключает использование специальных символов (маски) по протоколу FTP . Это может быть *, ?, [ и ]. Например:
По умолчанию использование символов маски разрешено, если URL содержит такие символы.Вы можете также взять URL в кавычки. Это сработает только на серверах Unix FTP (и эмулирующих выход Unix "ls"). ––passive-ftp Включает пассивный режим FTP , когда соединение инициируется клиентом. Используется при наличии firewall. ––retr-symlinks При рекурсивной загрузке папок FTP файлы, на которые указывают символические ссылки, не загружаются. Данный параметр отключает это.Параметр ––retr-symlinks работает сейчас только для файлов, не для папок.Помните, что этот параметр не работает при загрузке одиночного файла.
Расширенное использование
* Как и в примере выше, но с конвертированием ссылки в файлах HTML в локальные, для последующего автономного просмотра:
* Загрузить одну страницу HTML и все файлы, требуемые для отображения последней (напр. рисунки, файлы каскадных стилей и т. д.). Также сконвертировать все ссылки на эти файлы:
* Сохранить заголовки в файл для дальнейшего использования.
* Загрузить два высших уровня wuarchive.wustl.edu в /tmp.
-r -l1 включает рекурсивную загрузку с максимальной глубиной 1. ––no-parent выключает следование по ссылкам в родительскую папку, имеющую верхний уровень, -A.jpg разрешает загружать только файлы с расширением .GIF . -A «*.jpg» также будет работать. * Предположим, что во время рекурсивной загрузки вам нужно было срочно выключить/перезагрузить компьютер. Чтобы не загружать уже имеющиеся файлы, используйте:
* Вы хотите, чтобы загружаемые документы шли в стандартный вывод, а не в файлы?
Если вы хотите устроить конвейер и загрузить все сайты, ссылки на которые указаны на одной странице:
СМ. ТАКЖЕ
GNU Info для wget.
Опции
В wget имеется большое количество полезных опций - побольше, чем у Teleport'а флажков. Будучи завёрнутым в скрипт, например, teleport и положенным на видное место (указанное в PATH ), имеем удобство применения и богатство настроек.
-np , –no-parent — не подниматься выше начального адреса при рекурсивной загрузке.
-r , –recursive — включить рекурсивный просмотр каталогов и подкаталогов на удалённом сервере.
-l , –level= — определить максимальную глубину рекурсии равной depth при просмотре каталогов на удалённом сервере. По умолчанию depth=5.
-np , –no-parent — не переходить в родительский каталог во время поиска файлов. Это очень полезное свойство, поскольку оно гарантирует, что будут копироваться только те файлы, которые расположены ниже определённой иерархии.
-A , –accept , -R , –reject — список имен файлов, разделенных запятыми, которые следует (accept) или не следует (reject) загружать. Разрешается задание имен файлов по маске.
-H , –span-hosts — разрешает посещать любые сервера, на которые есть ссылка.
wget — консольная утилита для скачивания файлов/сайтов.
Умеет выкачивать файлы рекурсивно, следуя по ссылкам автоматически.
-r - ходим по ссылкам (рекурсивное скачивание)
-k - преобразовываем ссылки к локальному виду
-p - скачивание ресурсов необходимых для отображения html-страницы (стили, картинки и т.д.)
-l - глубина скачивания, 0 - бесконечная вложенность ссылок
-nc - не перезаписывать существующие файлы
-np - не подниматься выше начального адреса при рекурсивной загрузке
Каждый ключ имеет алиас (синоним),
например ключ -h соответствует --help (вызов помощи по команде).
Для докачивания файла от себя рекомендую применять такие ключи:
--continue - собственно режим докачивания файла
--timestamping - перекачивать файл только, если он новее локального
--tries=5 - кол-во попыток подключений при неудаче
--timeout=15 - задержка между попытками (секунд)
--no-cache - запретить кеширование данных
--no-dns-cache - запретить кеширование DNS адреса
Батник получения и подстановки для WGET настроек прокси Internet Explorer:
GNU Wget 1.11.4, a non-interactive network retriever.
Usage: wget [OPTION]. .
Mandatory arguments to long options are mandatory for short options too.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a `.wgetrc'-style command.
Logging and input file:
-o, --output-file=FILE log messages to FILE.
-a, --append-output=FILE append messages to FILE.
-d, --debug print lots of debugging information.
-q, --quiet quiet (no output).
-v, --verbose be verbose (this is the default).
-nv, --no-verbose turn off verboseness, without being quiet.
-i, --input-file=FILE download URLs found in FILE.
-F, --force-html treat input file as HTML.
-B, --base=URL prepends URL to relative links in -F -i file.
Directories:
-nd, --no-directories don't create directories.
-x, --force-directories force creation of directories.
-nH, --no-host-directories don't create host directories.
--protocol-directories use protocol name in directories.
-P, --directory-prefix=PREFIX save files to PREFIX/.
--cut-dirs=NUMBER ignore NUMBER remote directory components.
FTP options:
--ftp-user=USER set ftp user to USER.
--ftp-password=PASS set ftp password to PASS.
--no-remove-listing don't remove `.listing' files.
--no-glob turn off FTP file name globbing.
--no-passive-ftp disable the "passive" transfer mode.
--retr-symlinks when recursing, get linked-to files (not dir).
--preserve-permissions preserve remote file permissions.
Recursive download:
-r, --recursive specify recursive download.
-l, --level=NUMBER maximum recursion depth (inf or 0 for infinite).
--delete-after delete files locally after downloading them.
-k, --convert-links make links in downloaded HTML point to local files.
-K, --backup-converted before converting file X, back up as X.orig.
-m, --mirror shortcut for -N -r -l inf --no-remove-listing.
-p, --page-requisites get all images, etc. needed to display HTML page.
--strict-comments turn on strict (SGML) handling of HTML comments.
Recursive accept/reject:
-A, --accept=LIST comma-separated list of accepted extensions.
-R, --reject=LIST comma-separated list of rejected extensions.
-D, --domains=LIST comma-separated list of accepted domains.
--exclude-domains=LIST comma-separated list of rejected domains.
--follow-ftp follow FTP links from HTML documents.
--follow-tags=LIST comma-separated list of followed HTML tags.
--ignore-tags=LIST comma-separated list of ignored HTML tags.
-H, --span-hosts go to foreign hosts when recursive.
-L, --relative follow relative links only.
-I, --include-directories=LIST list of allowed directories.
-X, --exclude-directories=LIST list of excluded directories.
-np, --no-parent don't ascend to the parent directory.
Mail bug reports and suggestions to .
Минусы утилиты:
- Не умеет скачивать файл в папку под конкретным именем - всегда берет в роле имени адрес за последним слешем URL.
- Давно не развивается, например, не поддерживает новые протоколы подключения по шифрованному соединению.
- Сравнение Curl vs Wget (англ.)
Параметры загрузки
––bind-address= ADDRESS При соединениях по протоколам TCP/IP передает "bind()" в ADDRESS на локальной машине. В ADDRESS может быть указано как имя хоста, так и IP адрес. Используется, если ваш компьютер имеет несколько адресов IP. -t number ––tries=number Устанавливает число повторов number. Укажите 0 или inf для отмены повторов. -O file ––output-document=file Документы не будут записываться в соответствующие файлы, а будут объединены вместе и записаны в файл file. Если file существует, то он будет заменен. Если fileуказан, как —, то документы будут выводиться на стандартный вывод (stdout). Этот параметр автоматически устанавливает число повторов в 1. Полезен при закачке разделенных на части файлов с почтовых серверов через интерфейс web. -nc ––no-clobber Если при загрузке сайта связь оборвалась, то укажите этот параметр для продолжения загрузки с места прерывания связи.При запуске Wget без параметров -N, -nc, или -r загрузка одного и того же файла в одну папку приведет к созданию копии файла с именем file.1. Если существует файл и с таким именем, третья копия будет называться file.2 и т.д. При параметре -nc будут выводиться предупреждения об этом.При запуске Wget с параметром -r, но без -N или -nc, новая загрузка сайта приведет к замене уже загруженных файлов. При указании параметра -nc загрузка продолжится с места обрыва и загруженные файлы не будут загружаться заново (если только они не изменились).При запуске Wget с параметром -N, с или без -r, файл будет загружен только если он новее уже существующего, или если размер его не совпадает с имеющейся копией (см. Сравнение по дате). -nc не комбинируется с -N.
При указанном параметре -nc файлы с расширениями .html или (вот это просто ужасно) .htm с локальных дисков будут загружаться, как будто бы из интернет. -c ––continue Возобновление загрузки файла. Используется, если загрузка файла была прервана. Например:
Wget не содержит все возможности «настоящих пауков» для WWW . -T seconds ––timeout=seconds Время ожидания в секундах. По умолчанию время ожидания равно 900 с (15 мин). Установка значения в 0 отменяет проверку времени ожидания.Пожалуйста, не снижайте значение времени ожидания, если Вы точно не знаете, что именно делаете. -w seconds ––wait=seconds Пауза в секундах между несколькими загрузками (в т.ч. повторами). Это снижает загруженность сервера. Чтобы указать значение в минутах, используйте "m", в часах —"h", в днях — "d" после числа.Указание большого значения этого параметра полезно, если сеть нестабильна (например при обрывах модемной связи). ––waitretry=seconds Устанавливает паузу только между повторами оборвавшихся загрузок. Wget будет ждать 1 секунду после первого обрыва, 2 секунды после второго обрыва загрузки того же файла, и т.д. — до максимума, который указывается в секундах. Например, при значении данного параметра, равного 10, Wget будет ждать в общем (1 + 2 + … + 10) = 55 секунд для каждого файла.Это значение указывается по умолчанию в файле wgetrc. ––random-wait Некоторые серверы, совершая формирование файлов журналов с паузами запросов файлов, могут определить рекурсивную загрузку файлов — сканирование роботами, такими, как Wget. Этот параметр устанавливает время между запросами, варьируя паузы со временем, рассчитываемым от 0 до 2*wait (секунд), где wait указано параметром -w для маскировки Wget.Нельзя забывать, что исходный код Wget доступен, и пэтому даже эту маскировку при желании можно вычислить. -Y on/off ––proxy=on/off Поддержка сервера прокси. Включена по умолчанию, если прокси определен. -Q quota ––quota=quota Квота на размер загружаемых файлов. Указывается в байтах (по умолчанию), в килобайтах Кб (если в конце k) или в мегабайтах Мб (если в конце m).При исчерпании квоты текущий файл загружается до конца, то есть квота не работает при загрузке одного файла. Например, если вы исполниет wget -Q10k ftp://wuarchive.wustl.edu/ls-lR.gz, то файл ls-lR.gz будет полностью загружен. Также все указанные в командной строке файлы будут обязательно загружены, в отличие от списка файлов в одном файле или как при рекурсивной загрузке.Указание 0 или inf отменит квоту.
Просто использование
* Но что же будет, если соединение медленное, а файл длинный? Есть возможность обрыва связи перед завершением загрузки. В этом случае Wget будет продолжать попытки нового соединения, пока не кончится число попыток (по умолчанию 20). Можно изменить это число, например до 45:
Символ амперсанда в конце указывает командному интерпретатору продолжать работу, не дожидаясь завершения работы Wget. Чтобы программа делала повторы бесконечно — используйте -t inf. * Использовать FTP также очень просто. Wget берет на себя все заботы по авторизации.
* Если вы укажите адрес папки, то Wget загрузит листинг этой папки (т.е. файлы и подкаталоги, содержащиеся в ней) и сконвертирует его в формат HTML . Например:
Примеры
Просто скачать файл wget-ом:
Для продолжения оборвавшейся закачки пишем:
Как и в других программах, ключи имеют короткую и длинную формы, и вместо -с можно написать -continue . Длинные ключи проще запомнить, но дольше писать. Можно легко смешивать различные формы написания.
Чтобы выкачать файлы из списка, содержащего прямые ссылки:
Здесь указывается только файл, в котором содержатся ссылки. Файл может так же быть HTML -страницей, в которой есть ссылки. Они будут выкачаны указанной выше командой.
Использование а-ля «Teleport Pro for Linux».
При скачивании веб-сайтов возможностей больше, и поэтому требуется больше ключей. Опять-таки, запоминать их все не обязательно, можно сделать скрипт (а лучше несколько - под разные случаи) и вызывать их.
Так вот, если имеется веб-сайт, и хотелось бы иметь его локальную копию на компьютере, чтобы, отключившись от сети, можно было не торопясь его почитать.
Зеркалирование сайтов на локальную машину:
-m эквивалентно -r -N -l inf -nr , эти опции описаны ниже.
При этом ссылки останутся абсолютными - то есть, будут указывать на Интернет-адреса, и удобно просматривать на локальной машине будет затруднительно.
Копирование сайта для локального просмотра (с заменой интернет-ссылок на локальные адреса скачанных страниц):
При этом будет включена рекурсивная выгрузка (ключ -r, –recursive),
Читайте также: