Ru-Board.club
← Вернуться в раздел «Программы»

» Wget

Автор: GaDiNa
Дата сообщения: 08.11.2003 12:39
[ UNIX Shell ] || [ Рекурсивная загрузка веб-сайтов ] — родительские ветки.

GNU Wget

GNU Wget — это свободная неинтерактивная утилита для скачивания файлов по HTTP, HTTPS, FTP и FTPS (и только), обладающая самым базовым функционалом загрузки одиночных файлов и рекурсивной загрузки сайтов (HTTP) и директорий (FTP).


| Офсайт | Википедия | Фрешмит | Опен-хаб (бывш. Охлох) | Мануал | Ман | Ман (русск., устар.) | --help (русск.) |


Где взять.
Под GNU — уже стоит. Под FreeBSD — есть в портах. Под [Mac] OS X — собрать ванильный.
Под Windows есть варианты: 0) Cygwin, 1) GNUWin32 (учитывайте зависимости), 2) Wget + OpenSSL by GetGnuWin32, 3) by Bart Puype 4) [more=by osspack32]· Описание сборок by TumaGonx Zakkum
· v. 1.14, собранная с поддержкой OpenSSL 1.0.1c
· дополнительно к ней переводы, OpenSSL сертификаты, настройки
· v. 1.15 (with openssl 1.0.1f, pdf manual, wget.ini sample, locales and ca certificate) на SourceForge
· v. 1.16 (with openssl 1.0.1l, pdf manual, wget.ini sample, locales and ca certificate) на SourceForge
· v. 1.17.1 (with openssl 1.0.2d, pdf manual, wget.ini sample, locales and ca certificate) на SourceForge[/more], 5) [more=by Alex_Piggy] Wget_Nightly Внесены изменения! Обсуждение / предложения — в тему.[/more], 6) by Jernej Simoncc (32 и 64 бит отдельные пакеты).

Литература.
Popkov. Параметры программы wget
В. А. Петров. Wget — насос для Интернета

FAQ

Q: Можно ли простым перебором загрузить страницы (допустим) с первой по сотую, если их адреса:
http://example.org/index?page=1
http://example.org/index?page=2
...
http://example.org/index?page=100
A: Вэ-гет не умеет делать инкрементальный перебор, поскольку это умеет делать любая командная оболочка. На Баше это делается так:
$ wget -E "http://example.org/index?page="{1..100}
Еще раз отметьте, {1..100} — это синтаксическая конструкция Баша, а не Вэ-гета. Эквивалентной этой будет команда:
$ for i in {1..100}; do wget -E "http://example.org/index?page=$i"; done
Или для cmd.exe:
for /l %i in (1,1,100) do wget -E "http://example.org/index?page=%i"

Q: А как собственно сайт целиком-то загрузить?
A: $ wget -mpEk "http://example.org"
Это, наверное, самый ходовой набор ключей, но вам, может быть, более подойдут другие. Что значит каждый — легко узнать в мане.

Q: Я хочу загрузить с сайта, требующего авторизации. Что делать?
A: Проще всего кинуть куда-нибудь файл с нужными (но лишние не помешают) куками в нетскэйповском формате, затем воспользоваться ключом --load-cookies.
$ wget --load-cookies cookies.txt бла-бла # файл cookies.txt в текущей директории
У Файрфокса куки в требуемом виде можно получить, воспользовавшись расширением «Export Cookies»; у Хрома — «Cookie.txt export»

Q: Не-ASCII символы сохраняются в именах файлов как %D0%A5%D1%83%D0%B9 (или того хуже), хотя локаль юникодная.
A: Укажите ключ --restrict-file-names=nocontrol,unix или --restrict-file-names=nocontrol,windows соответственно.
Если у вас Windows и локаль не юникодная — используйте вариант от Alex_Piggy с ключом --local-filesystem-encoding=ENCODING, где ENCODING — имя кодировки локали в терминах iconv. Текущую локаль cmd.exe можно проверить при помощи команды chcp. Для русской кириллицы в Windows обычно используется CP866.

Q: Известно, что можно приказать Вэ-гету обновить ранее загруженный файл, если на сервере новее или иного размера (ключ --timestamping, он же -N). Можно приказать учитывать только дату, но не размер (--timestamping --ignore-length). А можно ли учитывать только размер, но не дату?
A: При помощи одного только Wget’а — нет. Возможна обработка получаемых заголовков файла при помощи средств командной оболочки. Пример для cmd.exe.

Q: Можно ли приказать Вэ-гету докачать файл, но только если он не изменился.
A: Нет, нельзя. Сочетание ключей -cN (--continue --timestamping), как можно было бы предположить, нужного эффекта не даст — «докачает» даже если файл изменился — получите в итоге мусор.

Q: Можно ли при рекурсивной загрузке ограничится только ссылками, содержащими параметр lang=ru, т.е. грузить:
http://example.org/index?lang=ru
http://example.org/page?id=1001&lang=ru
http://example.org/file?id=60&lang=ru&format=dvi
и не грузить:
http://example.org/index?lang=en
http://example.org/about?lang=fr
и т.д.
A: Для версий < 1.14 нет такой возможности.
Общий вид URI: <протокол>://<логин>:<пароль>@<хост>:<порт>/<путь>?<параметры>#<якорь>. Так вот ключи -I (--include-directories) и -X (--exclude-directories) относятся только к пути, но не к параметрам.
В версиях > 1.14 возможно при использовании ключей --accept-regex / --reject-regex. Пример: --reject-regex "lang=[^r][^u]"

Q: Можно ли средствами Вэ-гета ограничить перечень загружаемых файлов по дате модификации (новее чем, старше чем)?
A: Нет такой возможности.

Q: Можно ли при рекурсивной или множественной загрузке произвольно задать целевые пути и/или имена файлов на основе пути/имени по-умолчанию (применить транслитерацию, отбросить хвостовую часть) или хотя бы независимо (сгенерировать случайно или по счетчику)?
A: Нет.

Q: То — нельзя, это — невозможно. Почему все так плохо?
A: Потому что Вэ-гет на настоящий момент — базовая программа, предоставляющая только самый базовый функционал. Если вы уперлись в потолок ее возможностей, просто смените ее на другой инструмент. Из неинтерактивных свободных программ наиболее функциональными будут:
aria2c — для загрузки одиночных файлов по HTTP(S), FTP, бит-торренту;
httrack — для рекурсивной загрузки («зеркалирования») веб-сайтов;
lftp — для работы по FTP, FTPS, SFTP, FISH, а также с листингами, отдаваемыми по HTTP(S) (пример).
curl — для работы с одиночными файлам по HTTP(S), FTP(S) и многими другими протоколами на более низком уровне.

Разное.
GUI для Wget’а


Смело правьте и дополняйте шапку, однако не забывайте отписываться об исправлениях и сохранять исходный вариант под #.
Автор: cabron666
Дата сообщения: 08.11.2003 12:52
http://wget.sunsite.dk/
оно?
Автор: GaDiNa
Дата сообщения: 08.11.2003 12:56
а где там для win ?

Добавлено
кажись нашел

ftp://sunsite.dk/projects/wget/windows/

но что качать-то ?
Автор: cabron666
Дата сообщения: 08.11.2003 13:25
GaDiNa
Там похоже все версии выложены, см. по свежее
Автор: emx
Дата сообщения: 08.11.2003 22:00
GaDiNa
Поиск некоммерческого ПО производится в форуме Программы. Прочти правила.
Переношу топик туда.
Автор: Activium
Дата сообщения: 15.11.2003 19:47
А вот еще одно исключительно полезное сабджевое местечко

Heiko Herold's windows wget spot

_http://xoomer.virgilio.it/hherold/
Автор: Mud
Дата сообщения: 15.11.2003 20:02
Wget Daemon - gui для wget for windows, правда бета..... _http://webua.net/olin/wgetdmn.htm
Автор: popkov
Дата сообщения: 04.12.2003 13:07
Скачать самую последнюю версию и необходимые для работы программы DLL'ки можно отсюда:
http://xoomer.virgilio.it/hherold/
Конкретнее:
-версия 1.9.1 со справочным файлом: ftp://ftp.sunsite.dk/projects/wget/windows/wget-1.9.1b.zip
- DLL'ки (для последней версии): ftp://ftp.sunsite.dk/projects/wget/windows/ssllibs097c.zip
- всё вместе: ftp://sunsite.dk/projects/wget/windows/wget-1.9.1b-complete.zip


Добавлено
Переводы справки к программе:
http://vap.org.ru/wget/
http://www.pnpi.spb.ru/~shevel/Book/node100.html


Полезные дополнения (программы-оболочки):
Auto WGet Daemon http://glass.ptv.ru/software/awget.html
оболочка позволяющую работать почти без командной строки и с IE из контекстного меню http://yugres.cjb.net/download/dl.php?file=set_iewget.exe
А если нужна прога, в которой вводишь адресок, папку, куда качать и запускается wget с нужными параметрами, то вам сюда: s h a f f f . n a r o d . r u / d o w n l o a d / w c o m . z i p

Автор: popkov
Дата сообщения: 04.12.2003 21:13
Как можно скачивать форумы с помощью WGET:
http://forum.ru-board.com/topic.cgi?forum=5&topic=19&start=26
Автор: 8AleX8
Дата сообщения: 04.12.2003 22:32
popkov

Цитата:
Auto WGet Daemon

Это только для OS/2 под Windows не пашет
Автор: popkov
Дата сообщения: 30.12.2003 18:42
Параметры программы WGET

Все параметры чувствительны к регистру. Порядок их записи не важен. Они могут следовать после URL'ов, которых можно указывать сразу несколько, разделяя пробелами. Можно сокращать последовательность однобуквенных параметров, записывая их подряд без дефисов (например, "-rk" вместо "-r -k"). Для параметров, используемых с последующими аргументами, наличие пробела перед аргументом необязательно (например, записи "-o log.txt" и "-olog.txt" эквивалентны).
Поскольку параметры могут идти после URL, есть возможность явно указать, где заканчиваютя параметры, и начинается URL, с помощью '
--'. Например, команда
wget -olog.txt -- -x
приведёт к попытке загрузить URL "-x", записывая выводимые сообщения о неудаче в файл "log.txt".


Глобальные свойства

1) Wget всегда следует за перенаправлениями, но их не может быть больше 20. Однако они не приводят к рекурсивной выгрузке чужих сайтов, если не указан параметр '-H' в сочетании с '-r' и соответствующие сайты разрешены для загрузки.
2) Wget поддерживает cookies. Wget принимает <все> cookies, присылаемые сервером, и отпраляет их ему в заголовках дальнейших запросов. Кроме того, можно заставить wget сохранять полученные cookies в файле на диске в формате, поддерживаемом Internet Explorer и Netscape. Также возможен импорт cookies, принятых этими браузерами и полное отключение использования cookies.
3) При рекурсивной выгрузке wget отправляет заголовки 'Referer'. Этот заголовок можно также задать отдельно через параметр '--referer=URL' при загрузке отдельных файлов.
4) Поддерживаются подстановочные символы в FTP-адресах и кодирование в них данных для аутентификации. Например, команда
wget ftp://fly.cc.fer.hr/*
Загрузит все файлы из корневой директории сервера ftp://fly.cc.fer.hr/.
5) Данные для аутентификации на http:// и ftp:// - серверах могут быть включены в URL:
[no]ftp://user:password@host/[/no]
[no]http://user:password@host/[/no]
6) Небезопасные символы в URL'ах могут быть представлены в шестнадцатеричном виде в соответствии с кодовой таблицей ASCII. Примеры небезопасных символов: "%" (представляется как "%25"), ":" ("%3A"), "@" ("%40"). Полный список таких символов см. в RFC1738 или, если в лом искать, в этом посте.
7) Wget поддерживает два режима передачи файлов через FTP: двоичный режим (binary mode, type=i - используется по умолчанию) и текстовый (ASCII mode, type=a). В двоичном режиме файлы загружаются без изменений (это режим по умолчанию). В ASCII-режиме осуществляется конвертация символов конца строки между разными операционными системами. Этот режим полезен при загрузке текстовых файлов. Вот пример его использования:
ftp://host/directory/file;type=a
8) Все параметры, принимающие разделённые запятыми перечни аргументов, поддерживают правило, что указание после них пустого перечня аргументов очищает их текущее значение (например, заданное в файле .wgetrc). В следующем примере вначале очищается текущий перечень исключаемых при рекурсивной выгрузке директорий, заданный в файле .wgetrc, а затем в него вносятся корневые папки /cgi-bin и /dev:
-X' ' -X/cgi-bin,/dev


Описания важнейших параметров:

-nc - не загружать существующие файлы. Удобна для продолжения закачки сайта, прерванной посередине. При этом первым делом программа будет рекурсивно обрабатывать уже загруженные файлы, не выходя в Интернет. Поэтому, в сочетании с параметром "-rk" этот параметр позволяет конвертировать ссылки в HTML-файлах недокачанного сайта при отсутствии подключения к Интернету (при этом, к сожалению, HTML-файлы, сохраненные с таким расширением только благодаря использованию параметра "-E", будут считаться незагруженными. А сохранённые с неправильным расширением вэб-страницы не будут распознаны, как HTML-файлы, и ссылки из них экстрагироваться не будут). Если не указан ни этот параметр, ни "-N", то при попытке докачать недокачанный сайт все файлы будут загружены заново с перезаписью уже существующих. Этот параметр отменяет действие параметра "-c" при рекурсивной выгрузке.
-nd - не создавать никаких директорий, загружать все файлы в текущую директорию (если директория не задана отдельно).
-k - после окончания закачки всех файлов конвертировать все ссылки в них для локального просмотра. При этом ссылки на те файлы, которые не были загружены, будут вести в Интернет.
-E - сохранять все HTML-файлы, имеющие неправильное расшинение, с расширением .html (очень ценная опция при загрузке сайтов на ASP, CGI или PHP, т.к. без неё получается огромное количество файлов с неправильным расширением, которые, хотя и будут после конвертации открываться в браузере при переходе по локальной ссылке, плохо распознаются системой). Однако у этой опции есть побочное действие: те файлы, расширение которых было изменено, будут повторно загружены при докачке или обновлении существующей локальной копии сайта, даже если задан параметр "-nc" или "-N". Это связано с тем, что wget не может знать, к какому типу файла ведёт такая ссылка: "text/html" или "application/binary"? Соответственно, пока она не отправит запрос загрузки на сервер, не узнает. Тем не менее, это можно предотвратить в случае обновления существующей локальной копии сайта, если при первоначальной выгрузке использовать опции "-kK", что приведёт к тому, что оригинальные неконвертированные HTML-файлы будут резервироваться перед конвертацией в файлы с расширением .orig. В связи с этим, если есть вероятность, что сайт придётся докачивать без конвертации скачанных страниц, необдуманное использование этой опции оказывается невыгодным: во многих случаях те вэб-страницы на сайте, которые после скачивания будут иметь неправильное расширение, или совсем не нужны, или с них в любом случае не придётся начинать обзор. А ссылки на них с других страниц сайта после конвертации будут работать всё равно... Кроме того, следует помнить, что при использовании параметра "-nc" без "-E" такие файлы не только не будут загружаться заново, но также не будут конвертироваться при докачке, и вообще при докачке не будут распознаны как HTML-файлы, т.е. они будут потеряны в плане корректного отображения. А если использовать параметр "-E", они при докачке будут загружены заново, обработаны и после окончания закачки корректно конвертированы... А соль в том, что, например, на сайте www.3dnews.ru все ценные файлы имеют правильное расширение. Исключение не составляют даже файлы, создаваемые по ссылке "версия для печати"... Неправильное расширение только у счётчиков: это файла с именами вида "image.htm@count=3". Они все имеют одинаковый размер (3420 байт), и в некоторых папках их оказывается до 20 штук. Поскольку сайт этот имеет размер немаленький (больше 1 Гб), за один раз закачать его почти невероятно, даже если поставить закачку на двое суток. Это связано даже не с тем, насколько у Выс быстрый канал доступа в Интернет, а с загруженностью самого сервера. Поэтому, чтобы такого рода файлы каждый раз заново не закачивать, не следует использовать параметр "-E" или вносить их в список запрещённых... Однако закачать сайт www.3dnews.ru до конца всё равно не получится, т.к. эти файлы счётчиков создаются по мере рекурсивной выгрузки (я дошел до "image.htm@count=1500", и прекратил закачку, т.к. стало ясно, что эти файлы никогда не кончатся). После окончательного прекращения докачки, когда кроме счётчиков уже ничего не грузится, следует снова запустить её с параметром '-nc' в отсутствие соединения с Интернетом, и при запрете на загрузку таких файлов. Тогда все лишние файлы будут удалены, а ссылки корректно конвертированы.
-r - рекурсивная выгрузка всех файлов в вышележащих и нижележащих папках на сервере. По умолчанию, wget не заходит на другие сайты, если не указан параметр "-H", однако исключением является переадресация документов с данного сайта на другие, например на сайте www.3dnews.ru в разделе "Downloads" есть много ссылок типа www.3dnews.ru/file.rar. Однако при переходе по ним оказывается, что file.rar на самом деле находится на сайте files.3dnews.ru или на ftp.3dnews.ru. Я нашел 2 способа это обойти: запретить загрузку файлов с расширением .rar или ещё радикальнее: отнять у текущего пользователя право на создание папок в корневой директории, где находится папка www.3dnews.ru. Для этого проще всего воспользоваться консольной командой:
cacls "c:\dir1\dir2" /E /P user:R
где "c:\dir1\dir2" - путь к корневой папке (текущая директория командной строки при запуске wget), user - имя текущего пользователя. Выполнения этой команды отключит наследование прав доступа для данной папки и удалит вообще все параметры доступа для неё, оставив только разрешение на чтение для пользователя user. Результатом такого действия станет следующее: wget будет посылать на сервер запрос на файл, но при попытке записи на диск каждый раз будет обнаруживать отсутствие прав доступа. При этом запрошенный файл она будет пропускать, и продолжать закачку.
-p - загружать все файлы, необходимые для корректного отображения вэб-страницы. Благодаря этому параметру можно загружать с помощью wget отдельные вэб-страницы целиком, включая звуковые файлы, автоматически проигрываемые при открытии вэб-страницы и фреймы. Однако, по умолчанию, wget загружает только файлы, находящиеся на текущем сервере. Чтобы загружались все необходимые файлы, этот параметр надо использовать в комбинации с параметром "-H", а чтобы при этом не воссоздавалась структура всех серверов, на которых расположены затребованные файлы и не загружались ненужные файлы robots.txt, а сам HTML-файл был конвертирован для локального просмотра, следует использовать такую команду:
wget -HEkp -nc -nd -e robots=off URL
где URL - адрес вэб-страницы (его рекомендуется заключать в кавычки, т.к. некоторые URL'ы, содержащие небезопасные символы типа пробела, %, @, ?, неправильно интерпретируются обработчиком командной строки, если указать их без кавычек). Можно загружать вэб-страницы по списку в текстовом файле, если вместо "URL" указать "-i URLs.txt", где URLs.txt - имя файла со списком адресов для загрузки (по одному на строчку, в кавычки заключать нет необходимости).
-e command - выполнить команду command файла .wgetrc. После этого параметра через пробел может идти только одна команда этого файла. Такого рода команды, естесственно, имеют преимущества над записанными в файле .wgetrc, поскольку выполняютя после выполнения всех команд в нём.
-N - загружать с сервера только более новые файлы, чем уже сущесвующие. При этом для каждого файла на сервер будет отправляться запрос, по ответу на который будет определяться время последней модификации файла на сервере и его размер. Для некоторых файлов такая информация получена быть не может, например для файлов, генерируемых по запросу (так всегда бывает в случае веб-страниц форумов и любых других сайтов на PHP, ASP и т.п.). В этом случае wget загружает уже существующий файл повторно. При использовании этой опции в комбинации с "-kK" будут сравниваться также длины файлов. Кроме того, при использовании этого параметра полностью отключается приписывание окончаний "#" к существующим файлам. Например, если сочетать его с параметром '-nd', разные файлы с одинаковыми именами будут последовательно загружаться и перезаписывать предыдущие, т.к., при несовпадении размеров файла на сервере и на диске, существующий файл будет перезаписан независимо от даты его модификации. Однако после конвертации HTML-файлов все ссылки будут верны: ссылка в соответствующей вэб-странице, ведущая к тому файлу, который на самом деле был сохранён, будет вести к локальному файлу, а во всех остальных вэб-страницах - в Интернет, несмотря на то, что другие файлы тоже загружались (но потом перезаписывались).
-np - при рекурсивной выгрузке закачивать файлы только из нижележащих директорий по отношению к указанной в URL.
-Rlist. list - перечень окончаний имён файлов (например, gif или .jpg) и заключённых в кавычки шаблонов имён файлов (например, "zelazny*196[0-9]*" означает загрузку всех файлов, начинающихся с zelazny и содержащих числа от 1960 до 1969. Можно ещё использовать "?", как один подстановочный символ). HTML-файлы будут загружаться при рекурсивной выгрузке в любом случае, но если загрузка файлов с такими окончаниями или шаблонами имён запрещена, то после анализа они будут сразу же удаляться. Пример: -Rrar,zip,exe,"*template=print*" (запрещает загрузку файлов с расширениями rar, zip и exe, а также файлов, содержащих в имени последовательность символов "*template=print*". Однако последние, будучи html-файлами, всё равно будут загружаться, и сразу после загрузки удаляться, как запрещённые для сохранения. В связи с этим запрещать загрузку HTML-файлов по шаблону вообще не стоит: они всё равно будут загружены, да ещё и при докачке недокачанного сайта в очередной раз будут загружены в обязательном порядке...).
-Alist - загружать только файлы со следующими расширениями: list. Параметр полностью аналогичен -Rlist, но действует наоборот.
-llevel - при рекурсивной выгрузке сайта загружать на глубину level, считая от стартового файла. Если указано -l0 или -linf, то будут загружены все уровни (без ограничений). По умолчанию level=5. Под глубиной понимается удалённость последнего загружаемого файла от первого по числу промежуточных HTML-документов, которые пришлось проанализировать, не считая первый документ, и считая последний файл независимо от того, какого он типа. Таким образом, если level=1 и стартовая страница index.htm содержит ссылки на вложенную картинку image1.jpg, сжатый файл doc1.zip и страницу download.htm, в которой есть ссылки на doc2.zip, image2.jpg и страницу products.htm, то будут загружены только файлы image1.jpg, doc1.zip и products.htm.
-m - создать локальную копию сайта или обновить уже существующую локальную копию сайта, загружая только обновлённые файлы, сохранять листинги FTP-директорий. Этот параметр эквивалентен следующей записи: "-Nrl0 -nr".
-ologfile - записывать все выводимые сообщения в logfile, не выводя их на экран. logfile - имя файла или путь к нему (абсолютный или относительный). Например:
wget -mkEK http://www.gnu.org/ -o /home/me/weeklog
-alogfile - то же, что "-ologfile", но сообщения будут дописываться в конец этого файла вместо его перезаписи.
-iURLs.txt - загрузить все файлы с адресами, указанными в файле URLs.txt, где URLs.txt - имя файла или путь к нему. В нём должно быть по 1-му URL на строку. URL'ы могут содержать данные для аутентификации. Если в качестве файла со списком URL'ов нужно использовать вэб-страницу, этот параметр следует использовать в сочетании с опциями '--force-html' и '--base=URL'.
-Xlist - не загружать файлы из следующих папок: list , где list - рзделённый запятыми список путей к папкам относительно корневого каталога сервера, где каждый путь начинается с косой черты. Например, команда
-X/cgi-bin,/people/~somebody
приведёт к тому, что каталог верхнего уровня "cgi-bin" и подпапка "~somebody" каталога верхнего уровня "people" не будут загружены.
Если путь к папке содержит пробелы, его можно заключить в кавычки, а всю последовательность аргументов - в апострофы.
Этот параметр можно комбинировать с параметром "-I". Например, чтобы загрузить все файлы из иерархии директорий /pub, исключая /pub/worthless, нужно указать:
-I/pub -X/pub/worthless
-c - продолжить загрузку файла, который остался недокачанным в предыдущей сессии wget или другой программы. Это будет выполнено, только если сервер поддерживает докачку и размер файла на сервере больше, чем сохранённого на диске. Иначе, при наличии на диске данного файла, закачка произведена не будет. Этот параметр нет необходимости указывать для того, чтобы wget при внезапном обрыве соединения продолжил закачку вместо повторной загрузки с самого начала - в такой ситуации докачка, если её поддерживает сервер, является поведением по умолчанию, а параметр '-c' не оказывает никакого воздействия на поведение wget. Кроме того, следует быть осторожным, сочетая параметры "-c" и "-r", т.к. тогда каждый уже существующий файл будет рассматриваться как потенциально недокачанный, и в случае модификации документа на сервере, приведшей к увеличению его размера вместо закачки новой копии он будет "докачан" т.е. будет загружена конечная часть нового файла, и дописана в конец существующего. При рекурсивной выгрузке этот параметр вступает в противоречие с параметром "-N", что приводит к остановке загрузки или необработке некоторых HTML-файлов (этого не происходит, только если "-N" оказывается отключенным ввиду отсутствия в информации о дате модификации файла на сервере). Кроме того, такая простая докачка без отката может иногда давать повреждённый файл, если производится через "хромой" прокси-сервер, добавляющий в конец файла строку "transfer interrupted". В будущем автор планирует добавить возможность "отката" для решения этой проблемы (такая опция уже есть во FlashGet).
-Dlist - ограничить рекурсивную выгрузку следующими доменами: list - разделённый запятыми перечень имён доменов. Этот параметр имеет смысл только в сочетании с "-H". Может употребляться вместе с обратным по действию параметром "--exclude-domains list",
который действует совершенно аналогично, но наоборот:
wget -rH -Dfoo.edu --exclude-domains sunsite.foo.edu http://www.foo.edu/
приведёт к загрузке содержимого всех серверов в домене foo.edu, за исключением сайта sunsite.foo.edu и сайтов в поддомене sunsite.foo.edu.
Автор: 8AleX8
Дата сообщения: 19.03.2004 10:00
Фиксированный линк на стабильную версию под виндовс
ftp://ftp.sunsite.dk/projects/wget/windows/wget-complete-stable.zip
Автор: 8AleX8
Дата сообщения: 06.07.2004 00:14

Цитата:
Можно ли приспособить wget на то чтобы проверить список ссылок на файлы на скачиваемость и если можно узнать размер каждого файла ? Желательно с текстовыми логами.

http://hepd.pnpi.spb.ru/~shevel/Book/node103.html

Цитата:
-o logfile | -output-file=logfile
записывать все сообщения в файл с именем logfile. Обычно такие сообщения направляются в стандартный файл сообщений об ошибках.
---------------------------------------------
i file | -input-file=file
Читать список URL из файла с именем file. В этом случае нет необходимости задавать URL в командной строке. Если URL имеются в командной строке и в вводном файле, указанном параметром -i, то сначала будут обработаны те URL, которые находятся в командной строке. Нет необходимости, чтобы входной файл, указанной с помощью -i, имел вид HTML страницы. Достаточно, чтобы URL в файле были представлены в виде простого списка. Однако, вводной файл может иметь формат HTML страницы.

Если вы указали параметр -force-html, вводной документ будет рассматриваться как HTML страница. В этом случае возможны проблемы с относительными линками, которые вы сможете разрешить добавив в документ строку <base href="URL"> или определив параметр -base=URL в командной строке.
----------------------
--spider
Когда программа вызвана с этим параметром, то Wget ведет себя как spider, т.е. никакие документы не загружаются на локальные диски, а только проверяется, что удал©нные документы существуют. Это свойство можно использовать для проверки файла bookmarks.html:
wget -spider -force-html -i bookmarks.html
Эта особенность требует значительно больше работы от Wget, чтобы вести себя функционально идентично реальному роботу типа spider.

Автор: MetroidZ
Дата сообщения: 06.07.2004 08:58
8AleX8
Спасибо.
Собрал вот такую команду:

wget -spider -o test.txt -i file.lst

file.lst - просто ссылки списком, без тегов.
Но wget зачем то стал скачивать самый первый файл, несмотря на параметр -spider.
Остановил его. Где может быть ошибка ?

А лог пишет. Хотя в нём много лишней информации (в принципе не мешает, потом как нибудь в ексель переведу, общий размер узнать и пр.):

Length: 2,972,877 [application/octet-stream]

Кстати. Повлияет на что либо если ссылки на файл вот такого вида:
http://www.название.us/scripts/fw/ulink.asp?nr=11&f=http://www.название.com/Files/файл.exe
?

Если убрать первую часть ссылки - вместо файла качается html.
Хотя сейчас попробовал и простые ссылки - но опять начинает качать файлы. Причём в этих недокачанных файлах добавились вот такие заголовки:

HTTP/1.1 200 OK
Date: Tue, 06 Jul 2004 06:01:45 GMT
Server: Apache/1.3.31 (Unix)
....
Content-Type: text/plain
Rar! ;Рs

PS
Wget 1.9
Автор: Alex_Dragon
Дата сообщения: 06.07.2004 09:07
А никто не знает, как заставить wget просто список url выдрать?
Автор: 8AleX8
Дата сообщения: 06.07.2004 09:21
MetroidZ

Цитата:
wget -spider -o test.txt -i file.lst

Не -spider а --spider
Запусти в коммандной строке wget --help и почитай.
Автор: MetroidZ
Дата сообщения: 06.07.2004 09:56

Цитата:
Не -spider а --spider

на том сайте не "--"
http://hepd.pnpi.spb.ru/~shevel/Book/node103.html

оттуда и скопировал. У всех команд "-" а даже не подумал что в знаке может быть ошибка.

Сейчас проверяю список - wget зациклился на одном из файлов:

Connecting to messemagnet.messefrankfurt.com[193.102.59.7]:80... failed: Bad file descriptor.
Retrying.
Около 20 раз
затем перешёл на следующий.
Можно ли уменьшить кол-во попыток вот этот параметр:

"-t number | -tries=number
Установить число попыток выполнить копирование равным number"

применимо ли к данной ситуации?

Ещё нашёл:
" -Q, --quota=NUMBER set retrieval quota to NUMBER."

Похоже это тот самый.

PS
тему бы переименовать не мешает. Поэтому в GUI сначала и спросил. Там тема проще записана "Wget"
Ту тему лучше в "GUI для Wget", а эту в просто "Wget"
-----------------
Всё разобрался. Логи обработал - лишнее убрал спец утилитой.
Автор: Mira
Дата сообщения: 06.07.2004 13:45
у меня что-то не получается получить информацию о документе (HTTP)
время создания файла , кодировка и т.д.

кто знает, подскажите пзз!

заранее благодарен.

Добавлено
все вроде нашел..
правда оно в файло пишет
Автор: Mira
Дата сообщения: 13.07.2004 12:13
а как быть при скачке сайта с картинками прописаными либо в ксс либо с использованием стилей?
типа style='background-image:url("imagesr/draft/bg_logo_bottom_2.gif")
не задумаывались?
Автор: dosya
Дата сообщения: 18.07.2004 21:30
Как скачать большой файл в несколько потоков?
Автор: 8AleX8
Дата сообщения: 18.07.2004 21:49
dosya

Цитата:
Как скачать большой файл в несколько потоков?

IMHO. Вгетом никак.
Автор: dosya
Дата сообщения: 19.07.2004 04:02
IMHO. Это существенный минус для wget. Потому что в остальном я его смогу заменить httrack и с большим успехом.
Автор: evgenych
Дата сообщения: 19.10.2004 23:46
Возможно ли игнорировать регистр при скачивании с ФТП?
Автор: vu1tur
Дата сообщения: 20.10.2004 00:26
evgenych

Цитата:
Возможно ли игнорировать регистр при скачивании с ФТП?

А причем здесь вгет. Просто в *nix имена файлов case-sensitive.
Автор: evgenych
Дата сообщения: 20.10.2004 11:25

Цитата:
evgenych

Цитата:
Возможно ли игнорировать регистр при скачивании с ФТП?

А причем здесь вгет. Просто в *nix имена файлов case-sensitive.


Ааааа... т.е. получается что в принципе никак?
Так получается что в *nix "определенный регистр имени файла" это тоже самое, что и "определенное имя файла"?


Автор: f_serg
Дата сообщения: 20.10.2004 13:27
evgenych

Цитата:
Так получается что в *nix "определенный регистр имени файла" это тоже самое, что и "определенное имя файла"?

Типа того. А ты шаблон задаешь для скачивания? В принципе все решаемо.
Автор: evgenych
Дата сообщения: 20.10.2004 22:59
Файлы называются то ааа.ббб, то ААА.БББ. Если оба эти варианта учесть, то все хорошо.

Но вдруг кому-нибудь зачем-то вздумается обозвать файл аАа.бББ
В таком случае, как я понял, ничего сделать нельзя.

Автор: f_serg
Дата сообщения: 21.10.2004 10:36
evgenych
Примерно так:

Код: wget 'ftp://ftp.site.ru/dir/with/files/[Aa][Aa][Aa].[Bb][Bb][Bb]'
Автор: jvalej
Дата сообщения: 21.10.2004 11:36
Такая исчо утилитка есть - wgrab.

Цитата:
wgrab is a perl script that can be used to selectively download parts of a foreign website and store things in the local filesystem. Instead of the unspecified way, in which 'wget -r' downloads and stores everything, wgrab allows you to use iteration over dates and numbers, as well as regular expressions to specify, which references to follow.

Искал чем бы мне лучше автоматизироать скачку картинок с dilbert.com, и гугл мне её и выдал, только сколько ни пробовал, ничего с дилбертом у меня с её помощью не вышло...
Автор: evgenych
Дата сообщения: 22.10.2004 17:48

Цитата:

wget 'ftp://ftp.site.ru/dir/with/files/[Aa][Aa][Aa].[Bb][Bb][Bb]'

Во! Самое оно!

Страницы: 12345678910111213141516

Предыдущая тема: Windows XP FAQ = обновлен 19 мая =


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.