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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D
Имитация режима Турбо состоит по сути в загрузке контента через зарубежные (кэширующие) прокси.

----------
Ru-board 26.06.2001 - 26.06.2016

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 22:11 13-12-2015
D1D1D1D

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

Всего записей: 392 | Зарегистр. 04-04-2010 | Отправлено: 03:12 14-12-2015
Pasha_ZZZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
D1D1D1D
Можно поставить Tor (не Tor Browser, а Expert Bundle), указать wget'у его локальный прокси - и все будет скачиваться.

Всего записей: 3758 | Зарегистр. 11-03-2002 | Отправлено: 04:45 14-12-2015
D1D1D1D

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Поставил Expert Bundle, но затрудняюсь выяснить его локальный прокси — как это можно сделать? Правильно ли понимаю: надо запустить tor.exe и затем выполнить:
 
wget -e "http_proxy=127.0.0.1:3128" ссылка
 
соотвественно уточнив в этом коде хост и порт?

Всего записей: 392 | Зарегистр. 04-04-2010 | Отправлено: 17:28 14-12-2015
mithridat1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D
В начале года у вас уже был очень похожий вопрос,отправляю вас на него же http://forum.ru-board.com/topic.cgi?forum=5&topic=10066&start=2020#4
 
Добавлено:
Очень похоже на ситуацию с аквариумными рыбками,у которых память всего на 10 секунд У вас видимо чуть больше,10 месяцев.

----------
Ru-board 26.06.2001 - 26.06.2016

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 17:56 14-12-2015 | Исправлено: mithridat1, 20:38 14-12-2015
VictorVG2

Редактировать | Цитировать | Сообщить модератору
D1D1D1D
 
Без обид, но вы постоянно переспрашиваете одно и то же, будто вам важен сам факт задать вопрос, а ответ на не не интересен.
 
Если человек дважды задаёт один и тот же ранее задававшийся им вопрос на который ему уже отвечали, то ему задают два встречных вопроса:
 
1) У вас что, память дырявая?
2) Вы обучаемый?

 
Вам EC-5061 вместо блокнота подарить или сами обзаведётесь?

Отправлено: 18:12 14-12-2015
D1D1D1D

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Но-но, господа: память у меня дай Боже каждому)) В первом случае речь шла о скачивании .onion сайтов, во втором — об имитации режима Турбо и скачивании стандартных ссылок. А я как человек не особо включённый в эти дела, должен был увязать две задачи, без понимания того общего, что их может объединять? Да хрен там!))
Кстати получилось, спасибо!

Всего записей: 392 | Зарегистр. 04-04-2010 | Отправлено: 05:46 15-12-2015
VictorVG2

Редактировать | Цитировать | Сообщить модератору
D1D1D1D
 
А присмотреться к задачам что там общего? Или теперь вы по каждому чиху будете в ужасе кричать Help me, I have is new task! Ну а судя по всему эта развлекушка продолжится если вы не решитесь думать....

Отправлено: 07:03 15-12-2015
chAlx

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


Цитата:
 вы постоянно переспрашиваете одно и то же, будто вам важен сам факт задать вопрос, а ответ на не не интересен.  

Совсем другое дело, когда человеку важен сам факт ответить на вопрос, а соответствие ответа вопросу и тематике форума ему неинтересно...

Всего записей: 1490 | Зарегистр. 19-03-2003 | Отправлено: 14:32 15-12-2015 | Исправлено: chAlx, 14:34 15-12-2015
D1D1D1D

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VictorVG2
 
Зачем же так, Виктор, драматизировать? Пока что здесь только вы "в ужасе кричите", повторяясь в своих надуманных подозрениях)) Ну если вам в самом деле показалось, что я повторяюсь — и к тому же намеренно повторяюсь, видимо, кайфуя от этого — имеете абсолютную возможность игнорировать мои сообщения и поберечь ваши время и знания для других. Но голословить и фантазировать на мой счёт действительно не надо.

Всего записей: 392 | Зарегистр. 04-04-2010 | Отправлено: 13:03 16-12-2015
llon

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AWGG - универсальный ГУЙ для Wget, cURL, aria2, lftp и axel.
 
https://github.com/Nenirey/AWGG
https://sites.google.com/site/awggproject/

Всего записей: 7 | Зарегистр. 04-10-2012 | Отправлено: 08:47 25-12-2015
VictorVG2

Редактировать | Цитировать | Сообщить модератору
llon
 
Штука интересная, но разворачивать ради разовой сборки FPC не вижу смысла. Для моих задач GCC хватает. Погляжу, может кто скомпилит бинарник и выложит, а так для cURL у Дирка есть шелл коего в большинстве случаев мне хватает, а Wget достаточно прост в управлении чтобы ломать в этом направлении голову.

Отправлено: 11:04 25-12-2015
anynamer



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Отдаю комманду wget, а он сохраняет имя вместо ИСТОРИЯ пишет &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;
Как настроить?
 
TOTALCMD#BAR#DATA
cmd /K "for /f "tokens=1,2 delims=:" %a in ('time /t') do %COMMANDER_PATH%\soft\wget\wget.exe http://istoria.iptv.tv -O ИСТОРИЯ.ts"
%P
 
===
Изменил wget на другую версию - теперь правильно сохраняет имя с кириллицей, но в самом wget вместо неё карякули...
Есть ли настройка для корректного сохранения и отображения кириллицы  в wget.ini?
 

Всего записей: 1488 | Зарегистр. 17-05-2010 | Отправлено: 15:48 29-12-2015 | Исправлено: anynamer, 16:16 29-12-2015
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время, anynamer
Похоже, что нет...
Где-то я напортачил... Попробуйте вместо wget -O NAME использовать wget -O - > NAME
Последние коммиты вносят изменения в IRI, возможно решают проблемы с кириллицей, но еще не смотрел. На праздниках попробую разобраться...
UPD
Стоп! Я же это уже исправил полгода назад! Какой версией Вы пользовались?

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 17:00 29-12-2015 | Исправлено: Alex_Piggy, 18:49 29-12-2015
anynamer



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет Alex_Piggy!
Раньше у меня была 1.14 b0c6d2f9a4c9aa8dadc81afdf16d2eb2 *wget.exe
http://osspack32.googlecode.com/files/wget-1.14.exe
Released: Aug 11, 2012
File: wget-1.14.exe   543 KB
Description: GNU Wget 1.14 built on mingw32.
+digest +https +ipv6 +iri +large-file +nls +ntlm +opie +ssl/openssl
with apache dirlist, mingw-w64 and lookup patch
SHA1 Checksum: 6fc833d8e1d0d17364780af5585c0d7b00a99359
 
 
А сейчас поставил Wget 1.16.1.36-4781-dirty Ru-Board Variant с ней сохраняет кириллицу правильно, но отображает в утилите неправильно.

Всего записей: 1488 | Зарегистр. 17-05-2010 | Отправлено: 17:15 30-12-2015
daniee

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно ли получить список полных имён файлов сервера (рекурсивно, с учётом уровня рекурсии)? С этого, например:
 
http://archive.apache.org/
 
Как вариант- качать весь сайт, а потом уже получать нужные имена. Но качать весь сайт просто чтобы получить имена фалов, сами понимаете, неразумно. Спасибо, кто откликнется.

Всего записей: 2 | Зарегистр. 17-11-2015 | Отправлено: 20:48 03-01-2016
srkr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как-то мне удалось получить список верхнего уровня - имена файлов и папок. Помню, использовал я для этого какой-то ключик преобразования относительных путей в абсолютные. Хотя может быть я о другом речь веду.
 
Пожалуй, ничего не выйдет. Если речь идёт именно о фвйлах, хранящихся на сервере. Т.е., даже тех, на которые нет ссылок index.html.
 
Если нужун список файлов-картинок, css-файлов, то придётся распарсить index.html и создать файл-список.
 
Кое-что может дать ключ "-з".
 
Если бы на сервере не было файла index.html, возможно бы удалось получить список файлов и директорий верхнего уровня. А так, wget первым берет индексный файли и с ним работает.

Всего записей: 48 | Зарегистр. 14-12-2009 | Отправлено: 00:05 04-01-2016 | Исправлено: srkr, 02:33 04-01-2016
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
daniee> Но качать весь сайт просто чтобы получить имена фалов, сами понимаете, неразумно.
 
--spider

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 05:12 04-01-2016
VictorVG2

Редактировать | Цитировать | Сообщить модератору
Скрыл нерабочую ссылку на сборку Bart Puype - сайт сообщает что такого пользователя там более не существует. Удалять не стал: найдём новый адрес - поправим, откроем, пока побудет в запасе.

Отправлено: 17:02 04-01-2016
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
C круглой датой всех, сабжу двадцать лет В январе 96 зарелизили Geturl 1.0. Попозже переименовали в wget.

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 13:09 06-01-2016
Открыть новую тему     Написать ответ в эту тему

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