Страница 30 / 118

Wget: [Назад] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 [Вперед]

GaDiNa



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[ 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) by osspack32, 5) by Alex_Piggy, 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а
 

Смело правьте и дополняйте шапку, однако не забывайте отписываться об исправлениях и сохранять исходный вариант под #.

Всего записей: 1503 | Зарегистр. 17-06-2003 | Отправлено: 12:39 08-11-2003 | Исправлено: VictorVG2, 22:57 06-01-2016
BakLAN



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Вот бы MPlayer собрал из последних исходников консольный под Вынь - это было бы круто...
Сорри за офф...

Всего записей: 2788 | Зарегистр. 15-12-2003 | Отправлено: 19:23 29-12-2008
Victor_VG

Редактировать | Цитировать | Сообщить модератору
BakLAN
 
Господи, проблема. Возьми gcc-432-tdm.rar - это полноценная рабочая сборка компилятора. В архиве: gcc-4.3.2, ActivePerl-5.10 (необходим для работы компилятора), инструкция по установке. Умеет: C/C++, Fortran-90/2003, Ada, CVS, и собирай им что хочешь. А в качестве CVS клиента лови:

Код:
@echo off
IF EXIST %1 (goto lbla) ELSE (mkdir %1)
:lbla
cd %1
IF /I U EQU %3 (goto m2) ELSE (goto m3)
:m2
wget -r -np -k -p -x -nc --no-check-certificate --strict-comments -nH -c %2
goto :EOF
:m3
wget -r -np -k -p -x --no-check-certificate --strict-comments -nH -c %2

cvscl.cmd параметры:
 
%1 - каталог-приёмник, %2 URL сервера-источника, u | U - задаёт режим обновления если указано U, иначе скачивается всё подряд. Линки в HTML файлах будут автоматически преобразованы в локальные. Для его работы требуется Wget 1.11.4 с поддержкой SSL. Сам этим делом пользуюсь. Коли искать некогда, вот мой готовый вариант - забирай, только распакуй в пути чтобы система находила файлы, и батник поправь по коду отсюда. Мне проще батник написать или иную простую утилиту, чем искать громоздкую CVS и потом её компилить.
 

Отправлено: 06:07 30-12-2008 | Исправлено: Victor_VG, 09:05 30-12-2008
juvaforza

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
wget может качать с cvs-сервера?

Всего записей: 2881 | Зарегистр. 25-11-2005 | Отправлено: 17:34 30-12-2008
BakLAN



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
У меня есть GCC - им я как раз Wget компилю. Проблема не в нём, а в MPlayer: почитав мануал по сборке я понял, что разбираться придётся ой как долго чтобы правильно собрать рабочий вариант...

Всего записей: 2788 | Зарегистр. 15-12-2003 | Отправлено: 19:58 30-12-2008
Victor_VG

Редактировать | Цитировать | Сообщить модератору
juvaforza
 
А как ты думаешь? "Ночнушки" Far Manager именно на нём и лежат. Оттуда и беру Wget-ом. Имхо удобнее, чем чем-то ещё забирать. Одно время от ребят брал с помощью Offline Explorer Enterprise. Мне оказалось это не столь удобно как Wget-ом через батник.
 
BakLAN
 
Ну, тут, могу сказать одно - я им под BSD пользуюсь, на Win он мне не понравился, и я не стал с ним разбираться.

Отправлено: 09:00 31-12-2008
BakLAN



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ну, тут, могу сказать одно - я им под BSD пользуюсь, на Win он мне не понравился, и я не стал с ним разбираться.

Плеер суперский - и под Вынь тоже. Единственное, проблема собирать...

Всего записей: 2788 | Зарегистр. 15-12-2003 | Отправлено: 19:40 31-12-2008
Victor_VG

Редактировать | Цитировать | Сообщить модератору
BakLAN
 
На Win мне больше The KMPlayer! нравится.
 
Ладно, дела, делами, но всех с наступившим Новым Годом друзья и наши милые леди!

Отправлено: 01:26 01-01-2009
juvaforza

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Честно говоря, я не нашел адрес cvs-сервера на сайте Far, только svn c веб-интерфейсом. Но к примеру, если взять любой проект с cvs на sf.net (этот), wget может с ним справиться?

Всего записей: 2881 | Зарегистр. 25-11-2005 | Отправлено: 13:47 01-01-2009
Victor_VG

Редактировать | Цитировать | Сообщить модератору
juvaforza
 
Не пробовал.

Отправлено: 04:12 03-01-2009
Terix

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А вот как быть, если мне нужно скачать например эклипс?  
Вот тут можно найти ссылку на скачивание  
http://www.eclipse.org/pdt/downloads/
Вот эта ссылка  
http://www.eclipse.org/downloads/download.php?file=/tools/pdt/downloads/drops/2.0.0/R200812290607/pdt-all-in-one-win32-2.0.0GA.zip
 
wget качает http страницу, которая находится по данному адресу. И всё. Как качать такие ссылки?

Всего записей: 64 | Зарегистр. 19-01-2006 | Отправлено: 13:59 11-01-2009
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Terix

Цитата:
wget качает http страницу, которая находится по данному адресу

А ты заглядывал в ту страницу? Там список зеркал. Открываешь браузером, щелкаешь в браузере по ссылке и если файл доступен - скармливаешь wget-у прямую ссылку, типа
http://mirrors.nsa.co.il/eclipse/tools/pdt/downloads/drops/2.0.0/R200812290607/pdt-all-in-one-win32-2.0.0GA.zip
http://ftp.heanet.ie/pub/eclipse//tools/pdt/downloads/drops/2.0.0/R200812290607/pdt-all-in-one-win32-2.0.0GA.zip

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 16:12 11-01-2009
Terix

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev
Тупанул, прошу прощения. Спасибо за помощь

Всего записей: 64 | Зарегистр. 19-01-2006 | Отправлено: 09:38 12-01-2009
Terix

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как быть, если мне нужно загрузить все ссылки из файла со ссылками (который указываем в параметре i), причём каждую ссылку и относящиеся к ней файлы нужно положить в свою директорию?

Всего записей: 64 | Зарегистр. 19-01-2006 | Отправлено: 09:51 13-01-2009
Aeismann



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Terix
средствами сабжа - пожалуй никак, здесь только делать файл вида
 
http://link.to.file d:\path\to\file
...
 
потом его разбивать FOR-ом на строки и подстроки и для каждой строки запускать  
wget %s1 --output-path=%s2 (детали см. в хелпе к FOR)

Всего записей: 174 | Зарегистр. 24-10-2006 | Отправлено: 10:08 13-01-2009
Panzer

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Рискну повторить вопрос:
Может ли wget писать в лог не только время, но и дату начала работы?

Всего записей: 1681 | Зарегистр. 23-10-2003 | Отправлено: 22:13 17-01-2009
Aeismann



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Panzer, по мануалу, таких возможностей не предусмотрено. Выходы: либо изменить сорсы проги и скомпилить ее заново, либо запускать не wget, а bat файл, где выполнять
 
echo %DATE% >> log.log
wget %*

Всего записей: 174 | Зарегистр. 24-10-2006 | Отправлено: 22:25 17-01-2009
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Panzer
wget 1.11.4 отсюда http://users.ugent.be/~bpuype/wget/ пишет и дату
 
 
 

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 23:49 17-01-2009
tumanovalex

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Давно пользуюсь этой программой. В последней версии все сообщения программы в виде закорючек, видимо, надо настраивать язык вывода (http://gnuwin32.sourceforge.net/packages/wget.htm). Я сам не смог разобраться, как это можно сделать. Помогите, пожалуйста.

Всего записей: 120 | Зарегистр. 31-10-2005 | Отправлено: 17:48 18-01-2009
Victor_VG

Редактировать | Цитировать | Сообщить модератору
tumanovalex
 
Ты имеешь ввиду 1.11.4.1? Проверил сейчас что на команду --help выведет - UTF-8:
 
опции Wget (по русски)
"Проблема" лечится элементарно - убрать из share/locale/LC_MESSAGES/wget.mo - он кодирован в UTF-8, а Win консоль говорят пока c UNICOD-ом не дружит. Редактируй файл если нужны русские сообщения. Прямо с ходу у меня на это нет сил. Завтра к вечеру - поглядим. Программа под UNIX скомпилирована.
 

Отправлено: 05:12 19-01-2009 | Исправлено: Victor_VG, 05:43 19-01-2009
tumanovalex

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, именно эта версия. Как отредактировать файл wgetc, чтобы он показывал русские сообщения, я не знаю. Да, действительно, убрав файл wget.mo в директории  
share/locale/ru/LC_MESSAGES все выводится по английски, хоть что-то можно понять. Спасибо большое за подсказку! Подожду помощи по руссификации.

Всего записей: 120 | Зарегистр. 31-10-2005 | Отправлено: 06:38 19-01-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

Компьютерный форум Ru.Board » Компьютеры » Программы » Wget

Сохранено: 09.06.2016 19:41:19 (c) xForumSaver