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

Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Victor_VG 14:43 07-08-2014
Цитата:
M$ ответила "Эта информация коммерческая тайна компании и не разглашается.
Это был намёк на то что - покупай MSDN.
А вообще как всегда засранцы, кто же так делает.

Всего записей: 2552 | Зарегистр. 07-09-2005 | Отправлено: 12:34 08-08-2014
Victor_VG

Редактировать | Цитировать | Сообщить модератору
SkyRE
 
Не намёк, ибо MSDN свободно доступен, но нужной информации и в нём не было, зато через некоторое время  в контору поступило предложение снести Tru64 UNIX вместе с используем пакетом ПО и заказать его разработку и внедрение на базе продуктов M$ от одного из их бизнес-партнёров в США. Бизнес по-американски.

Отправлено: 12:37 08-08-2014 | Исправлено: Victor_VG, 12:47 08-08-2014
SkyRE

Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Victor_VG
Ща уже добавили
http://msdn.microsoft.com/en-gb/library/windows/desktop/ms724439(v=vs.85).aspx
http://msdn.microsoft.com/en-gb/library/windows/desktop/ms724451(v=vs.85).aspx
Victor_VG 12:37 08-08-2014
Цитата:
зато через некоторое время  в контору поступило предложение снести Tru64 UNIX вместе с используем бизнес-пакетом и заказать его разработку на базе их серверов от одного из их бизнес-партнёров.
Это современный трэнд ведения бизнеса. Да и касты могут быть разные, т.н. ownership costs. Да и Трушку кто сейчас поддерживает?

Всего записей: 2552 | Зарегистр. 07-09-2005 | Отправлено: 12:49 08-08-2014
Victor_VG

Редактировать | Цитировать | Сообщить модератору
SkyRE
 
На предыдущей странице я про сиё писал - раз, в FarUE3 это используется уже сто лет в обед после баг-репорта о проблемах установки на Win 8.1 - два.
 
P.S.
 
Обсуждать вопросы о том кто поддерживает какие серверные ОС я не не намерен - есть задача и под неё выбирается нужный инструмент с учётом требований безопасности и надёжности.

Отправлено: 12:59 08-08-2014 | Исправлено: Victor_VG, 13:16 08-08-2014
SkyRE

Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Victor_VG
IBM AIX на Power сервере. И развивается.

Всего записей: 2552 | Зарегистр. 07-09-2005 | Отправлено: 13:13 08-08-2014
Victor_VG

Редактировать | Цитировать | Сообщить модератору
<del>

Отправлено: 13:15 08-08-2014 | Исправлено: Victor_VG, 13:15 08-08-2014
SkyRE

Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Всё, я не оффтоплю - а то сейчас в дыню получу

Всего записей: 2552 | Зарегистр. 07-09-2005 | Отправлено: 13:15 08-08-2014
Victor_VG

Редактировать | Цитировать | Сообщить модератору
Alex_Piggy
 
Обновили OpenSSL до 0.98zb, 1.0.0m, 1.0.1i. К FarNetBox v2.1.39.320 OpenSSL v1.0.1.9 уже прикрутили, а Wget можно ждать в таком варианте? Правда приходится учитывать факт появления новых проверок в мэйках и configure - на no-unit-test мы уже имели счастье ворчать, и кроме того она потянула за собой ряд новых файлов в исходниках...

Отправлено: 13:22 08-08-2014 | Исправлено: Victor_VG, 13:29 08-08-2014
A1eksandr1

Редактировать | Цитировать | Сообщить модератору
Доброго времени,
Перепробовал многое, может тут что подскажут.
Ситуация с авторизацией на сервере с логином/паролем, в котором присутствуют спецсимволы.
Несколько сборок wget, в том числе крайний порт от Alex_Piggy оповещают:  

Код:
 
--ftp-user=xxxx@xxxx --ftp-password=xxx!xxx^xxx
--2014-08-11 15:16:06--  ftp://xxx.xxx.xxx.xxx/
           => '.listing'
Connecting to xxx.xxx.xxx.xxx:21... connected.
Logging in as ххх@ххх ...
Login incorrect.

3 спецсимвола сохранены в оригинальном виде, их передача в виде %XX пробовалась, результат аналогичен.
--------------------
При этом стандартный виндовский фтп отрабатывает на 5ть в этой же ситуации без извращений:

Код:
C:\Users\User>ftp
ftp> open xxx.xxx.xxx.xxx
Связь с xxx.xxx.xxx.xxx.
220 Hello User!
Пользователь (xxx.xxx.xxx.xxx:(none)): xxx@xxx
331 Please specify the password.
Пароль:
230 Login successful.
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    2 ftp      ftp          4096 Aug 04 18:03 ХХХ
.....................................

Сервер не мой, получить более подробную информацию о нём, либо попробовать соединиться с простыми логином/паролем нет возможности.
Помимо стандартного win_ftp также успешно соединяются FileZilla, FireFox, IE, opera...
Может есть у кого какие мысли по wget, с другими фтп не подводил.

Отправлено: 12:36 11-08-2014 | Исправлено: A1eksandr1, 12:38 11-08-2014
Pasha_ZZZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
A1eksandr1
С @ проблем быть не должно. Насчет других двух - попробовать заменить на ^! и ^^ соответственно... Тут фактически не WGET виноват, а CMD.EXE

Всего записей: 3758 | Зарегистр. 11-03-2002 | Отправлено: 12:50 11-08-2014 | Исправлено: Pasha_ZZZ, 12:51 11-08-2014
A1eksandr1

Редактировать | Цитировать | Сообщить модератору
Pasha_ZZZ,
Цитата:
^! и ^^
- работает
Благодарю!

Отправлено: 12:58 11-08-2014
Taran2L87UA



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

Всего записей: 75 | Зарегистр. 02-06-2008 | Отправлено: 16:26 05-09-2014 | Исправлено: Taran2L87UA, 16:35 05-09-2014
JekaKot



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попытаю счастья тут...
Интересует получение зеркала http://help.autodesk.com/view/PLNT3D/2015/RUS/.
Сами файлы, в принципе, получил, а вот чтобы в сохраненном было и содержание - не получается.
Кто-нибудь может помочь?

Всего записей: 2419 | Зарегистр. 10-03-2006 | Отправлено: 23:19 23-09-2014
Victor_VG

Редактировать | Цитировать | Сообщить модератору
JekaKot
 
По моему это не задача для cURL/Wget-а ибо надо будет по дороге вычислять и выражения в скриптах. Тут разве что использовать специализированные инструменты типа Offline Explorer . Других идей в голову не приходит.

Отправлено: 00:34 24-09-2014
D1D1D1D

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

Всего записей: 392 | Зарегистр. 04-04-2010 | Отправлено: 23:11 17-10-2014 | Исправлено: D1D1D1D, 00:54 18-10-2014
mithridat1



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

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 23:44 27-10-2014
Skif_off

Редактировать | Цитировать | Сообщить модератору
А никто случайно не пользует кросс-компиляцию? Нашёл скрипт случайно (поправил с учётом свежих версий), ради любопытства, и - нифига Xubuntu.
 
Добавлено:
И патч убрал, вписывал в configure вручную.

Отправлено: 03:19 28-10-2014
Skif_off

Редактировать | Цитировать | Сообщить модератору
Шапка обновлена: добавлена ссылка на v1.16 (openssl 1.0.1l) by osspack32.

Отправлено: 11:13 29-10-2014
MERCURY127



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

Цитата:
v1.16 (openssl 1.0.1l) by osspack32
хорошая штука, но немного глючит:
Подробнее...

Всего записей: 6213 | Зарегистр. 02-06-2011 | Отправлено: 11:38 29-10-2014
Victor_VG

Редактировать | Цитировать | Сообщить модератору
MERCURY127
 
Факт, есть такой ляп и похоже он связан с ошибкой при сборке после наложения патча на init.c:

Цитата:
 #ifdef WINDOWS
+
+    if (GetModuleFileNameA(NULL, rcPath, MAX_PATH))
+    {
+        _splitpath( rcPath, szDrive, szDir, szFName, szExt );
+        _makepath( rcPath, szDrive, szDir, NULL, NULL);
+        SYSTEM_WGETRC = strcat( rcPath, "wget.ini");
+    }

тут придётся смотреть что вызывает поиск wget.iniwget.ini вместо wget.ini.
 
 
Зарепортил автору сборки. Думаю когда увидит - и сам поправит.

Отправлено: 12:23 29-10-2014 | Исправлено: Victor_VG, 14:36 29-10-2014
Открыть новую тему     Написать ответ в эту тему

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