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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
 
Спасибо. В новой версии wget проблема с названиями решилась.  
 
Пытаюсь скачать страницу из кэша Google (а так, как известно протокол HTTPS). При закачке ругается на сертификат
"WARNING: cannot verify webcache.googleusercontent.com's certificate, issued by '/C=US/O=Google Inc/CN=Google Internet Authority G2':
  Unable to locally verify the issuer's authority.
HTTP request sent, awaiting response... 403 Forbidden
2013-11-03 13:26:28 ERROR 403: Forbidden."
 
 
 
Попробовал вместе с опцией --no-check-certificate:
wget -i list.txt --no-check-certificate

 
Все равное ругается на сертификат! Как быть?
А файлы в кэше не сегодня-завта будут перезаписаны.
 
 
 
Добавлено:
 
 
 
попробовал еще вот так:
wget -i list.txt --ca-certificate z:\wget\ca-root-nss.crt https://www.google.com/
 
(файл ca-root-nss.crt скачал с первого попавшегося ftp, который нагуглил)
 
Вот результат:
Connecting to webcache.googleusercontent.com (webcache.googleusercontent.com)|173.194.71.132|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2013-11-03 13:45:53 ERROR 403: Forbidden.

 
Как подружить wget и гугл ?

Всего записей: 1943 | Зарегистр. 10-03-2006 | Отправлено: 11:28 03-11-2013 | Исправлено: PREVED, 12:00 03-11-2013
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время, PREVED
Это не ошибка сертификата. Точнее, не только.
HTTP 403 - "В доступе отказано" - то ли реферер не нравится, то ли юзерагент. Скорее, последнее.
Найдите строку useragent для своего браузера.  
Например, для IE9 это будет что-то вроде Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
wget -i list.txt --no-check-certificate --user-agent="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"
Для оперы работает так:
wget.exe --user-agent="Opera" "http://webcache.googleusercontent.com/search?q=cache:RNPk-pc7W9sJ:elims.org.ua/blog/google-cache-browser-prosmotr-kesha-bez-muchenij/+&cd=2&hl=ru&ct=clnk&gl=ua&client=opera"

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 12:23 03-11-2013
Skay91

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер)
Подскажите, как отключить редирект (303 See Other) и чтоб при этом скачивалась именно та страница, на которую ссылка.
то ли я слепой, то ли в мане и правда ничего такого нет.
если --max-redirect ставить значение 0 - то просто обрыв идет, ссылка не качается в итоге.
гугл как не спрашивал, в основном выдает про правильное имя после редиректа, а как его отключить - нету

Всего записей: 73 | Зарегистр. 06-03-2011 | Отправлено: 21:09 03-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skay91
Не понял. У вас под 303 See Other возвращается какое-то полезное содержимое? Покажите этот чудо-урл. В любом случае, можете воспользоваться curlом — он без явного указания по редиректам не ходит.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 21:30 03-11-2013 | Исправлено: ASE_DAG, 21:32 03-11-2013
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время
ASE_DAG
Скорее всего просто версия < 1.13, в которой было введено отдельное --trust-server-names. До этого по умолчанию wget получал имя файла, после - файл сохраняется под именем из URL.
Skay91
Попробуйте версию 1.14

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 21:36 03-11-2013
Skay91

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy,ASE_DAG
 как раз это не то. что имя файла не меняется это не та проблема. содержимое не то.
качаю http://lib.rus.ec/a/781 (в браузере открывается как надо) а для wget случается перенаправление на http://lib.rus.ec/a/33265  (я в курсе что там и там одна инфа, меня интересует, как обойтись без этого редиректа в wget)
версия 1.13.4

Всего записей: 73 | Зарегистр. 06-03-2011 | Отправлено: 21:44 03-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skay91
> качаю http://lib.rus.ec/a/781 (в браузере открывается как надо), а для wget случается перенаправление на http://lib.rus.ec/a/33265
Не подтверждаю. У меня и браузер* перенаправляет.
 
*) Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131030 Firefox/17.0 Iceweasel/17.0.10


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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 21:44 03-11-2013 | Исправлено: ASE_DAG, 21:48 03-11-2013
Skay91

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у меня Firefox 24 (под виндой). из плагинов адблок и TabMixPlus но ни то ни другое на это не влияют.

Всего записей: 73 | Зарегистр. 06-03-2011 | Отправлено: 21:57 03-11-2013 | Исправлено: Skay91, 21:58 03-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skay91
ОК. Поскольку мы зашли в тупик, давайте вы воспользуетесь одним из советов Эрика Рэймонда и опишите вашу конечную цель, а не один из пунктов возможного алгоритма решения.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 22:04 03-11-2013
Skay91

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну Вы уже решение дали - curl, буду им качать, раз wget без редиректа не может.
P.S.: пасиб за ссыль))

Всего записей: 73 | Зарегистр. 06-03-2011 | Отправлено: 22:08 03-11-2013 | Исправлено: Skay91, 22:11 03-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skay91, тем не менее, мне все-таки было бы интересно узнать, нафига это нужно.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 22:17 03-11-2013
Skay91

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

Код:
 
skay91@debian:~$ curl -o "781" http://lib.rus.ec/a/781
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                                      Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
skay91@debian:~$ curl -L  -o "781" http://lib.rus.ec/a/781
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                                    Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0 49388    0     0  41764      0 --:--:--  0:00:01 --:--:--  154k
 
 

без редиректа отказывается качать.

Всего записей: 73 | Зарегистр. 06-03-2011 | Отправлено: 22:45 03-11-2013 | Исправлено: Skay91, 22:46 03-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не отказывается, а все, что было, скачал. Что значит, что не было там, под 303-м кодом ничего лишнего. Как и должно быть.
 
Добавлено:
И да, я по-прежнему не понимаю, зачем вам это нужно.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 23:35 03-11-2013
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время, Skay91
Редирект выдает сервер. Программа не может скачать страницу Х, если сервер перенаправляет на страницу Y.
Печенькой сервер подкупать не пробовали? ;-)
Если серьезно - скорее всего у Вас есть учетная запись на Либрусеке или что-то еще, что хранится в cookies. Или авторизуйтесь при помощи Wget/Curl или экспортируйте cookies.
И проверьте Ваш другой браузер - как он себя будет вести.
PS. Opera тоже перенаправляется на 33265. Мою учетку там заблокировали, поэтому авторизацию проверить не могу.

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 09:45 04-11-2013
Skay91

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy, а вот ИЕ перенаправляет (как авторизованный так и неавторизованный). Хм. ну пока выкачаю так, а потом гляну, много ли таких авторов Если  что уже руками поправлю.
Всем спасибо.

Всего записей: 73 | Зарегистр. 06-03-2011 | Отправлено: 10:24 04-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skay91
> скорее всего у Вас есть учетная запись на Либрусеке
Судя по скриншоту, который вы мне прислали лично (он секретный?), у вас таки есть там учетная запись. И это весьма вероятно и есть причина.
 
P. S. Кстати, там на снимке написано: «Ошибочное написание автора Вольдемар Николаевич Балязин». А что здесь ошибочного? На странице, куда перенаправляют его имя записано точно так же, разве нет?

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

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

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

Всего записей: 73 | Зарегистр. 06-03-2011 | Отправлено: 14:25 04-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Еще раз: это не вопрос настройки клиента. Если хотите узнать в чем дело — напишите админам Либрусека, спросите при каких обстоятельствах их сервер отдает 200 с вот этим содержимым с вместо 303.

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

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

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрейшая ночь!
 
Явленная ниже команда скачивает из списка все подряд ссылки на изображения, в том числе на несуществующие (при этом грузится HTML-страница):

Код:
wget -i lnklst.txt

Имеется ли опция для скачивания только реальных ссылок?

Всего записей: 392 | Зарегистр. 04-04-2010 | Отправлено: 22:14 06-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D, если по ссылке что-то загружается (в частности HTML-страница), то это ссылка вполне «реальна».
 
Добавлено:
А устанавливать ограничение по mime-type ключом позволяет, например, httrack.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 23:34 06-11-2013
Открыть новую тему     Написать ответ в эту тему

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