Страница 67 / 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
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день, Victor_VG
Уважаемый, прошу прощения за оффтоп, но не могу понять два момента...  
1. Как Вы выполняете команду "ls -fR" на чужом/удаленном сайте???  
2. Так понял, что vitrzn нужно зеркалить сайт с длинным списком масок в опциях? И присутствует файл масок? Зачем тогда wget -i mask.list? В смысле, откуда он получит список URL для закачки?

ПС. Понял, спасибо за науку.

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 21:43 06-06-2012 | Исправлено: Alex_Piggy, 22:52 06-06-2012
Victor_VG

Редактировать | Цитировать | Сообщить модератору
Alex_Piggy
 
Учите матчасть ... в ПМ.

Отправлено: 22:37 06-06-2012
z1987

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
Выполняю такую команду  
 
wget http://kakoitosite.com/kakoitoscript.php?peremennaya_0=0 -O /var/www/html/log/filerezultat.
 
Мне надо, чтобы с каждым разом, которым я выполнял эту команду, результат дозаписывался в filerezultat, а он перезаписывается.  
Можно ли как-то сделать, чтобы происходило дозаписывание?
 
Для wget есть опции -o и -a. Первая перезаписывает, а вторая дозаписывает, но обе они записывают лог работы wget, а не результат.
 
 

Всего записей: 10 | Зарегистр. 22-10-2009 | Отправлено: 15:38 12-07-2012
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день, z1987
Ключа не помню. Наверное проще всего будет через stdout
wget http://kakoitosite.com/kakoitoscript.php?peremennaya_0=0 -O - >> /var/www/html/log/filerezultat.

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 16:23 12-07-2012
king_stiven

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как прописать IP и порт? Хочу, чтоб через TOR работал.

Всего записей: 2093 | Зарегистр. 17-07-2006 | Отправлено: 07:44 24-07-2012
creature_ws



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

Цитата:
wget --help | findstr proxy


Код:
set http_proxy=0.0.0.0:0000
wget http://site.domain/file.ext --proxy=on
 

Всего записей: 256 | Зарегистр. 29-07-2008 | Отправлено: 08:24 24-07-2012
felix1234

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
когда скачиваю сайт целиком(для локального просмотра на компе) у него есть ссылки с рускими буками, после окончания работы wget при конвертировании ссылок выдаётся ошибка "Incomplete or invalid multibyte sequence encountered", я так понял что это из за русских букв, ссылки с ними не конвертируются и ведут на сайт в интернете, сервер выдаёт страницу в windows-1251
 
находил про патч wget.utf8.patch, но рабочую ссылку на скачку не нашёл,  поэтому кто знает как решить эту проблему, или у кого есть этот патч - помогите) icq 864776 - лучше сюда.

Всего записей: 2 | Зарегистр. 02-08-2012 | Отправлено: 19:58 02-08-2012
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день, felix1234
Какую версию Вы используете? (wget --version). Лучше если у Вас версия 1.13.4
Если есть "+iri" - смотрите в сторону опций "--local-encoding" "--remote-encoding" (для win32 "--restrict-file-names=ascii") . Если нет - старые ссылки для win32 померли,  возьмите отсюда - https://dl.dropbox.com/u/27457022/wget.exe . Или отсюда https://dl.dropbox.com/u/27457022/wget-1.13.4-r2575-dirty.zip  
Альфа-версию (wget-1.13.4.79-22f0 от 14.07.12) постараюсь сегодня-завтра собрать/выложить.
 
Добавлено:
Wget 1.13.4.79-22f0 Win32 _______ Wget 1.13.4.79-22f0 Source
 
Добавено2:
Wget 1.14 Win32

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 21:50 02-08-2012 | Исправлено: Alex_Piggy, 00:22 08-08-2012
felix1234

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy, как Вы быстро ответили) спасибо помогло, у меня wget 1.13.4 +iri,  
вот такая комбинация ключей успешно справляется с задачей!
wget -t 3 --restrict-file-names=windows --local-encoding="UTF-8" --remote-encoding="UTF-8" -E -r -k -p -l 0 http://example.com/

Всего записей: 2 | Зарегистр. 02-08-2012 | Отправлено: 09:55 03-08-2012
juvaforza

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

Всего записей: 2881 | Зарегистр. 25-11-2005 | Отправлено: 12:43 07-08-2012 | Исправлено: juvaforza, 12:46 07-08-2012
eacl

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скажите как запустить wget что б скачал хоть какой-то файл для примера, ненужно команды куда их вводить?? Кликаеш exe файл он мигнул и все

Всего записей: 4 | Зарегистр. 12-08-2012 | Отправлено: 12:36 12-08-2012 | Исправлено: eacl, 12:38 12-08-2012
3J5N9P



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
eacl
Нужно сначала запустить Коммандную строку (cmd.exe), команды - http://help.ubuntu.ru/wiki/wget
Или как альтернатива есть графический интерфейс для wget даже: http://trog.qgl.org/20110804/wackget-v1-2-4-now-works-on-windows-7-and-vista/

Всего записей: 206 | Зарегистр. 23-07-2010 | Отправлено: 12:49 12-08-2012
eacl

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пишет не являеться внутренней или внешней командой... напиши плиз в асю 646-304-004

Всего записей: 4 | Зарегистр. 12-08-2012 | Отправлено: 13:21 12-08-2012
MERCURY127



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
eacl, скопируй файл вгет.ехе в папку винды

Всего записей: 6213 | Зарегистр. 02-06-2011 | Отправлено: 13:26 12-08-2012
3J5N9P



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
eacl
Сначала нужно в командной строке перейти в папку, где находится тот самый wget.exe
Сделать это можно с помощью команды cd, см. справочник по командам например тут
 
ICQ не пользуюсь

Всего записей: 206 | Зарегистр. 23-07-2010 | Отправлено: 13:32 12-08-2012
eacl

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, случилось а как можно изменить что б в другую папку закачивалось? (зачавивется в admin)

Всего записей: 4 | Зарегистр. 12-08-2012 | Отправлено: 13:47 12-08-2012
MERCURY127



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Закачивает он в текущую папку, чтоб закачать куда определенно - нужно туда перейти заранее, и вообще, сначала учимся пользоваться консолью.

Всего записей: 6213 | Зарегистр. 02-06-2011 | Отправлено: 14:30 12-08-2012
Victor_VG

Редактировать | Цитировать | Сообщить модератору
3J5N9P
 
По моему, там расписано не плохо для начинающих, но 99% из них от слов "консоль, командная строка" шарахаются как чёрт от ладана - людей изначально учат, что дескать консоль штука устаревшая как динозавр. Я например 99% времени работаю именно в консоли. И мне наплевать где - IBM OS/360 - OS/390, DEC OSF/1, DEC Open VMS, IMB AIX, FreeBSD, Sun OS, SUN Solaris, Windows. Мне это позволяет быстрее решить мои задачи, значит данный инструмент для них оптимален, и лезть в Х-ы для этого - увольте. А этих людей учат иначе - ЭВМ для них прежде всего ну грубо говря второй телевизор в доме. Кино поглядеть, с роднёй поболтать, развлечься. Им поэтому консоль и не нужна, и они её стараются не видеть как явление природы - им важнее кнопка "Пуск" и родной плеер. Я бы вообще для них как для секретарши ставишь shell-ом текстовый редактор - ей всё равно обычно больше ничего и не надо, для бухгалтера бухгалтерию - пусть не отвлекается!, так и им в качестве шелла медиплеера за глаза хватит. Или любимой игрушки. И их мозги так устроены, что иного они просто не признают - "Раз в данный момент это мне лично не нужно, значит этого не существует!". И этим людям хоть кол на голове затёсывай до "мозгу" не достучишься.

Отправлено: 14:44 12-08-2012
eacl

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что б тему не засорять напиши плиз в сайп есть пару вопросов wget.wgetwget.wget спасибо

Всего записей: 4 | Зарегистр. 12-08-2012 | Отправлено: 16:07 12-08-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
eacl
Чтобы не засорять эту ветку, просто обратитесь туда, где ваши вопросы будут уместны — в ветку с названием типа «Командная строка Windows (cmd)» где-то в «Программах». Воспользуйтесь фильтром, а если не найдете, то, может быть, те, у кого сейчас есть удобный им ПК под рукой, подскажут вам точную ссылку.

----------
Спроси, где спросить!

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 16:22 12-08-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 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:44:38 (c) xForumSaver