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

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG, логин или пароль наверняка правильные. Скопировал их из bat-ника в браузер и успешно авторизовался.

Всего записей: 405 | Зарегистр. 11-06-2007 | Отправлено: 21:50 03-04-2011
ASE_DAG



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

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

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG, вот что заметил - форма входа каждый раз имеет новый id вида blk549***, где последние 3 цифры равны аргументу rnd. Это может мешать авторизации?

Всего записей: 405 | Зарегистр. 11-06-2007 | Отправлено: 22:39 03-04-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Unc1e
Мне не мешает.
И судя по тому, что айди формы вы никуда не передаете, не может.

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

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ну хз. Мои данные не принимает почему-то. С вашими логин/паролем все в порядке - страница приходит авторизованная. В любом случае - огромное спасибо за помощь!
PS name="password" maxlength="15" - это ограничение на длину строки? У меня пароль из 18. Может из-за этого...

Всего записей: 405 | Зарегистр. 11-06-2007 | Отправлено: 23:04 03-04-2011 | Исправлено: Unc1e, 23:04 03-04-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Unc1e
> огромное спасибо за помощь!
Всегда пожалуйста.
 
> name="password" maxlength="15"
А откуда это?
Ну да, это ограничение на длину пароля. Только оно для браузера. И если через браузер авторизация с паролем в 18 символов таки проходит (что это у вас за браузер, который игнорирует это поле), то нет никаких оснований ей не проходить и через сабж.
 
Добавлено:
А может быть, дело вот как обстоит: вы что при регистрации вбили, что сейчас вбиваете все 18 символов пароля и не замечаете, что после пятнадцатого они не вводятся?

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

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG, и Опера и IE принимают 18 символов в это поле и не ругаются.
upd сейчас попробую только 15 ввести
upd2 и правда, 3 символа просто-напросто игнорируются одно слово - ucoz

Всего записей: 405 | Зарегистр. 11-06-2007 | Отправлено: 23:17 03-04-2011 | Исправлено: Unc1e, 23:22 03-04-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Unc1e
> и Опера
Не подтверждаю (Опера 11.01).
 
> и не ругаются
И не должны. Должны молча прекратить принимать ввод.
 
Добавлено:
> и правда
Т.е. вопрос разрешился? Вот и славно.
 
> одно слово - ucoz
А причем здесь Укоз? Это нормальное поведение любого браузера.

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 23:21 03-04-2011
Unc1e

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG
> А причем здесь Укоз?
почему бы не разрешить пароли длиннее 15 символов?

Всего записей: 405 | Зарегистр. 11-06-2007 | Отправлено: 23:26 03-04-2011
ASE_DAG



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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 23:27 03-04-2011 | Исправлено: ASE_DAG, 23:27 03-04-2011
MENNENN



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста как правильно сохранить ссылки для локального просмотра, оканчивающиеся на /
 
После загрузки сайта и конвертации, некоторые ссылки оканчивающиеся на / продолжают вести в интернет,  
 
<a href="www.example.org/foto/nature/images/sample/">  
 
при переходе по ним загружается нормальная страница
 
example.org/foto/nature/images/images.shtml
 
В ручную редактировать огромное количество файлов для меня не выход из ситуации. Как же добиться результата, чтобы вместо таких ссылок  
<a href="www.example.org/foto/nature/images/sample/">  
конвертировались ссылки типа  
<a href="foto/nature/images/images.shtml">
 

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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MENNENN
> некоторые ссылки оканчивающиеся на / продолжают вести в интернет
Не наблюдал.
 
> <a href="www.example.org/foto/nature/images/sample/">
Такая ссылка не должна была обработаться так, как предполагалось, вовсе. Это ссылка на www.example.org в текущей директории.
 
> при переходе по ним загружается нормальная страница
Так может быть дело и не в ссылках на директории, а в редиректах?

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



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
есть раздел сайта  
http://www.fotoclub.info/festival/
логин-пароль естесно имеется
 
для каждого фотоклуба отдельная страничка , например
http://www.fotoclub.info/festival/collection/preview.html?club_id=208
меняются только цифры в конце
фотографии по таким ссылкам
превью
http://www.fotoclub.info/-imgs/fest/photo/size2/img_1302436842_7b18c.jpg
полноразмерная
http://www.fotoclub.info/-imgs/fest/photo/size1/img_1302436842_7b18c.jpg
 
как можно скачать полноразмерные не набивая ссылки на каждое фото?
а то мозгов не хватает

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 15:48 16-04-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sis_terr
Если вам нужны фото только определенного клуба, идентификатор к-рого задается в GET-параметрах, то сабжем здесь не обойтись. Заюзаем httrack:
$ httrack -* '+www.fotoclub.info/festival/collection/preview.html?club_id=162&photo_id=*' '+http://www.fotoclub.info/-imgs/fest/photo/size1/*' 'http://www.fotoclub.info/festival/collection/preview.html?club_id=162'
 
P.S. Да, вы говорили про логин-пароль. Достаточно кинуть cookies.txt в текущую директорию, httrack его подцепит.

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



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

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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sis_terr
> с разбивкой по папкам
Вполне можно. Сообщите по какому критерию разбивать — скажу как.
 
> с утра буду соображать  
Раз так, то до завтра. :)

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



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

Код:
wget.exe -c -i  -PF:\_Control --keep-session-cookies --save-cookies COOKIE.TXT --post-data "login=******&password=*****" "http://www.fotoclub.info/festival/login.html#" -O -  
wget --load-cookies COOKIE.TXT -c -H -p  
 
$ httrack -* '+www.fotoclub.info/festival/collection/preview.html?club_id=162&photo_id=*' '+http://www.fotoclub.info/-imgs/fest/photo/size1/*' 'http://www.fotoclub.info/festival/collection/preview.html?club_id=162'

 
дальше загрузки COOKIE.TXT не идёт

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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sis_terr
Во-первых, cookies.txt, а не COOKIE.TXT, внимательней.
Во-вторых, куки должны быть в текущей директории, и выше это тоже написано.
И наконец, «$» — это приглашение шелла, а не команда. Вы хоть чуточку критически относитесь к тому, что вам пишут, а не просто копипастите. :)

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 18:53 17-04-2011
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
если честно то я смотрю на то что вы написали мне раньше как баран на новые ворота)))
строчка с COOKIE.TXT  содрана с другого работающего с cookies батника
 
такие понятия как
«$» — это приглашение шелла,  
задается в GET-параметрах
$ httrack -
 
выше моих познаний (( в работе с  программой
 
снизойдите  

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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sis_terr
> строчка с COOKIE.TXT  содрана с другого работающего с cookies батника
Ну я и говорю, не надо бездумно копипастить. :)
 
> «$» — это приглашение шелла
В Винде оно имеет вид знака больше (>).
 
> задается в GET-параметрах  
<протокол>://<логин>:<пароль>@<хост>:<порт>/<путь>?<параметры>#<якорь>
Сабж не умеет ограничивать свои рекурсивные похождения параметрами.
 
Итак, httrack вы установили?
Могу предположить, что его исполняемый файл оказался не в директории, перечисленной в %PATH% (Винда, ага), поэтому надо будет ее (директорию) туда добавить вручную.
А дальше выполняете то, что я привел выше, учитывая виндовую специфику. Я бы для начала проверил в интерактивной комстроке:
>httrack ....и т.д.
, а только потом включал в скрипт.
 
И не заставляйте меня писать что-либо (виндовый батник) вслепую, я всегда (ну почти ;) проверяю команды, которые могут быть скопипащены и выполнены, а его мне не проверить.

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 00:07 18-04-2011 | Исправлено: ASE_DAG, 00:08 18-04-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:17 (c) xForumSaver