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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Да, дочитался, что нельзя.
Проверил, помог именно параметр -N.
 
Скажите, а можно ли wget-ом закачать файл локально, с какой-то расшаренной папки, посредством netbios?

Всего записей: 2307 | Зарегистр. 16-01-2003 | Отправлено: 21:54 03-02-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VitK
> netbios
Нет. Только HTTP и FTP.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 22:00 03-02-2011
VitK



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Спасибо Вам за помощь.
 
Нашел, что можно для NetBios использовать внешнюю команду xcopy
 

Всего записей: 2307 | Зарегистр. 16-01-2003 | Отправлено: 22:05 03-02-2011
MENNENN



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
 Вырубился свет, спустя некоторое время запускаю все заново, качаю сайт с параметрами как вы указали
wget -mpEk http://www.erowid.org/
 
  Будет ли wget продолжать скачку сайта поверяя уже загруженные до этого файлы, а потом и приступит к докачке отсутствующих, или необходимо указывать дополнительные команды запуска, типа -c или -nc
 
 Прочитал Описания важнейших параметров, написанных popkov, использование некоторых команд имеет ряд плюсов и минусов. Так же как использование одной команды без другой может привести к неоправданному результату. Совсем запутался с этими командами.

Всего записей: 42 | Зарегистр. 26-04-2009 | Отправлено: 19:43 21-02-2011 | Исправлено: MENNENN, 19:45 21-02-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MENNENN
Если задан ключ -N, загружаться заново не измененные (сравнение по дате модификации и, афайк, размеру) файлы не будут.
У вас он задан в рамках -m == -r -N -l 0.
-c — ключ для докачки отдельного файла
Ключ -nc указывает не перезагружать страницы, даже если они изменились. Это актуально для динамически генерируемых сайтов.
 
Добавлено:
Да, и ссылка на начало нашего с вами разговора — для архива.

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 20:09 21-02-2011
MENNENN



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

Всего записей: 42 | Зарегистр. 26-04-2009 | Отправлено: 21:36 21-02-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MENNENN
Пожалуйста.
Да там и осталось не так много, чего стоит знать. Советую при дальнейшем изучении в качестве справочника все-таки использовать оригинальный ман, а не его несколько сокращенный русский перевод, и тем паче не самопальные шпаргалки. ;)
Что будет неясно, обращайтесь.

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 21:45 21-02-2011
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
подскажите, как правильно записать в .bat  IP\ порт и логин\пароль
 чтоб получить доступ программы к инету через межсетевой фильтр

----------
жительница мульки

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 23:32 23-02-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sis_terr
> межсетевой фильтр
Это что? Судя по всему, HTTP-прокси, да?
Тогда надо задать переменную http_proxy либо в окружении, либо в wgetrc, либо при помощи ключа -e.
http_proxy="http://username:[email protected]:8080/"
 
FTP-прокси — аналогично.
 
Через SOCKS-прокси сабж, афайк, работать не умеет.

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 00:15 24-02-2011 | Исправлено: ASE_DAG, 00:16 24-02-2011
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG
я точно не знаю как это называется, нашего админа шеф надавил, типа надо что то делать, а то народ сидит Вконтакте каких то зверей кормят и не работают, вот что то по быстрому поставил, на “лишние” сайты не зная логина\пароля не зайдёшь
 
нашла в архиве файлик sample.wgetrc, интересный, читаю, вникаю

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 02:41 24-02-2011 | Исправлено: sis_terr, 15:43 24-02-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sis_terr
> не зная логина\пароля
А вы еще про адрес машины говорили, что его тоже нужно знать.
Указывать адрес, логин и пароль в клиенте может потребоваться именно для непрозрачного HTTP-прокси.
 
> sample.wgetrc, интересный, читаю, вникаю
Может быть имеет больший смысл почитать ман? Он тоже интересный и там все описано. Но это только если хотите.  
Я уже писал, что конкретно в вашем случае, можно, скорее всего, сделать так:
$ wget -e http_proxy="http://username:[email protected]:8080/" http://example.org
 
P.S. А с вами, получается, админ логином и паролем поделился? :)

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 19:13 24-02-2011
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
так, рассказываю , сделано там вот так , это то что я назвала межсетевым фильтром,
Подробнее...
 про адрес машины мне чето втёр помошник админа, я правда ещё не была в том блоке машин где получила от него эту информацию
 
Wget-ом пользуюсь давно, для меня - лучшая качалка, прикручен к Опере, ман я читаю,  тот что тут в шапке, когда возникают вопросы,  правда обращаю внимание на написание бат файла, а вот что можно большую часть написать в wgetrc , где то пропустила эту инфу, теперь надо сообразить их взаимодействие,
наверно потом поспрашиваю тут непоняное
 
конкретно по этому вопросу - сработала вот такая запись
 wget -e  http_proxy=http://login:pass@http://master.krusl:4080/  
вторую часть, - после собачки, немного подёргав себя  за косички,
 потому что тот IP и порт совсем не работал, взяла из адресной строки браузера
логин\пароль получены честно, за красивые глазки, я ж не шарюсь по вконтактам )))

----------
жительница мульки

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 01:33 25-02-2011 | Исправлено: sis_terr, 01:52 25-02-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sis_terr
> http://login:pass@http://master.krusl:4080
Очень интересное сочетание. По моим понятиям так работать не должно, но если работает, то замечательно.
Да, я на скриншоте вижу, что у вас шифрованное соединение. В этом случае разумно им пользоваться и писать соответственно https_proxy=https:// и т.д.
 
> конкретно по этому вопросу
Я, увы, не уловил, а какие еще вопросы остались? :)

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 02:04 25-02-2011 | Исправлено: ASE_DAG, 02:06 25-02-2011
sis_terr



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

Цитата:
По моим понятиям так работать не должно

ну я просто не знала что так может не работать, поэтому применила метод научного тыка )) помогло
А как иначе там можно было найти и прописать данные?
 
насчёт записи https , можно поэксперементировать, если будет время,
но есть закон программистов - работает - не трогай ))
 
> конкретно по этому вопросу>  
это был не вопрос, а вводная фраза возвращения к вопросу после отступления от основной темы

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 12:32 25-02-2011 | Исправлено: sis_terr, 12:33 25-02-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sis_terr
> А как иначе там можно было найти и прописать данные?
Строго говоря, УРЛ в общем виде выглядит так: <протокол>://<логин>:<пароль>@<хост>:<порт>
Указывать протокол еще раз перед хостом некорректно, и по идее работать так не должно. Но это, наверное, по идее. :)
 
> это был не вопрос
Тогда удачи вам. =)
А возникнут еще вопросы — обращайтесь.

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 14:54 25-02-2011 | Исправлено: ASE_DAG, 14:54 25-02-2011
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG, а, дошло! я думала что неправильно то что адрес записан буквами, а не цифрами ,
 а Вы про второй раз http:    
да прога видать просто проигнорировала или меня пожалела, оки , когда  буду там, удалю, попробую, отпишусь, а в ближайшее время буду в другом блоке машин, но думаю что и там всё так же сделано только с другим адресом.
А обратиться придётся, меня заинтриговал файл wgetrc, но надо набраться шишек,  
что бы было что спросить
И ещё - большое спасибо за помощь!    

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 19:51 25-02-2011 | Исправлено: sis_terr, 15:37 26-02-2011
MENNENN



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
 Здравствуйте!
 
Возник у меня один вопрос на засыпку. Интересует возможность сохранения сайтов c протоколом HTTPS. Библиотеки OpenSSL, libeay32.dll и ssleay32.dll установлены.
 
Указываю параметры скачки.
 
wget -mpEk --http-user="user" --http-pass="passwd" https://example.org/

Всего записей: 42 | Зарегистр. 26-04-2009 | Отправлено: 17:33 26-02-2011 | Исправлено: MENNENN, 17:34 26-02-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MENNENN
> Указываю параметры скачки
И не работает? Вопрос-тот в чем?
 
Добавлено:
Да, ключ --http-password до --http-pass сокращать не надо. Черт знает почему, но однозначным сабж его начинает считать только с --http-passwo — не меньше.

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 17:40 26-02-2011
MENNENN



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Вопрос в том, что он не качает вообще. В консоли пишет использовать команду -no-check-certificate для незащищенного соединения. Применяю команду -no-check-certificate пишет  
 
wget: illegal option -- `-no'

Всего записей: 42 | Зарегистр. 26-04-2009 | Отправлено: 18:25 26-02-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MENNENN
Во-первых, ключи в длинной ГНУ-нотации начинаются с двух дефисов: --no-check-certificate.
Во-вторых, мне кажется, вы ошиблись, решив что на сайте HTTP-аутентификация, ее и так редко нынче кто использует, а в шифрованном соединении она вообще, афайк, бесполезна.
В-третьих, почему вы не хотите дать адрес сайта?

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 18:36 26-02-2011 | Исправлено: ASE_DAG, 18:37 26-02-2011
Открыть новую тему     Написать ответ в эту тему

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