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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно я влезу?
 
useretail, извините, где вы видите, чтоб т. chAlx испрашивал решения чего-либо? По-моему, он просто сообщил об ошибке в сборке, сопровождаемой кем-то из местных (а кстати кем?).
 
> если Вы даже не пробовали последнюю версию? Или пробовали?  
 
Вот это как понимать? Что вы, что там с этой ошибкой в последней версии, не знаете?

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 19:01 17-08-2015 | Исправлено: ASE_DAG, 19:07 17-08-2015
useretail



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

Всего записей: 496 | Зарегистр. 14-09-2007 | Отправлено: 19:08 17-08-2015
chAlx

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

Цитата:
По-моему, он просто сообщил об ошибке в сборке

Да вот тут хрен поймёшь, где ошибка: в самой сборке (а там разные версии), в используемых (всеми??) параметрах запуска или ещё где.
 
Для начала хотелось бы выяснить, что это вообще за явление: качают, сравнивают, качают снова... Вгет -- не тот софт, который домохозяйки втупую ставят с дефолтными параметрами. Тут явно некий масс-эффект повлиял; если его вычислить, то можно попробовать узнать, чего люди пытались добиться, и объяснить, как это сделать по-правильному.
 
Вот, для наглядности, кусочек, выдранный из последних двух дней:
Подробнее...

Всего записей: 1490 | Зарегистр. 19-03-2003 | Отправлено: 19:33 17-08-2015
ASE_DAG



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

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 21:31 17-08-2015 | Исправлено: ASE_DAG, 21:32 17-08-2015
chAlx

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

Цитата:
Собственно из этого кусочка я массовой каждодневной загрузки что-то не усматриваю.

Со стороны сервера она очень даже массовая и каждый день. Хотя я писал про массовый эффект, произведённый кем-то на местных пользователей: неспроста же столько разных Вгетов стало ко мне ломиться.
 
Ниже примеры из выборки за пару месяцев (вроде, за это время было 3 версии файла). Всего нашлось ~5700 уникальных айпишников с Вгетом. Конечно, далеко не все занимаются повторной закачкой: у многих запросов HEAD большинство (всего в логе от Вгета их ~60%). Но это не снимает вопроса, зачем они вообще это делают :)
Подробнее...

Всего записей: 1490 | Зарегистр. 19-03-2003 | Отправлено: 00:55 18-08-2015
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chAlx> Всего нашлось ~5700 уникальных айпишников с Вгетом.
 
И это разве много? Какую территорию покрывает ваше зеркало? Всю европейскую Россию? Или какова это доля от общего числа запросов?
 
> зачем они вообще это делают
 
Как это «зачем»? Обновления загружают.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 01:22 18-08-2015 | Исправлено: ASE_DAG, 01:23 18-08-2015
chAlx

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

Цитата:
И это разве много?

Не знаю, сколько это собственно пользователей или их компов. В логе всего ~23000 айпишников. По-сравнению с любым разумным числом пользователей виндового Wget это много. Тем более, что Вгетов "Ru-Board Variant" примерно половина, а тут тема не шибко бурная.
 

Цитата:
Как это «зачем»? Обновления загружают.

Дело в том, что сам файл довольно специфический: расширение для браузера. Если его установить (их ведь для этого качают?), то браузер (Firefox, Seamonkey) будет сам раз в сутки проверять и устанавливать обновления. Т.е. заведомо имеются механизмы автоматической проверки, скачивания, корректной установки (после Вгета с этим придётся ещё помучиться) -- и всё это нативными средствами и прозрачно для пользователя.
 
Можно, конечно, предположить, что это всё виндовые админы наполняют свои самодельные репозитории, а потом другими скриптами разносят файлы по всей конторе. Но для админов, даже виндовых, реализация слишком кривая.
 
Ну и все эти повторные загрузки наводят на мысль, что люди делают что-то не то. Может, после скачивания файл удаляют/переименовывают, а Вгет пытается сравнить новый вариант с отсутствующим старым... Даже [бесполезная] проверка обновлений Вгетом не должна приводить к такому эффекту, если нормально реализована.

Всего записей: 1490 | Зарегистр. 19-03-2003 | Отправлено: 10:34 18-08-2015
Alex_Piggy

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

Цитата:
сопровождаемой кем-то из местных (а кстати кем?).

Мной.
chAlx
Между запросами HEAD и GET несколько секунд (или десятков секунд) разницы. log докачки. Сама фича работает нормально, так что, увы, причина не в моих кривых руках, собравших кривой билд log timestamp. Это не Wget, а чей-то скрипт. Надо искать, кто делал сборку с этим вариантом. Реально?  
PS. Обновил.
PPS
526549
Wget

Цитата:
Речь больше не о размере, а о том, что рубордовские версии не выводят прогрессбар скачивания при ключе -nv, а должны.

RTFM, а? "--show-progress       display the progress bar in any verbosity mode".  Посмотрите также что такое wget.ini/.wgetrc и их содержимое.

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 12:26 18-08-2015 | Исправлено: Alex_Piggy, 13:30 18-08-2015
chAlx

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

Цитата:
Это не Wget, а чей-то скрипт.

Скорее всего да. Но исключать бинарник я бы не стал: виндовые таймстампы даже автора Тотал Коммандера в тупик ставили. (Там несколько вариантов реализации в разных версиях винды, в т.ч. зависящих от настроек летнего времени.)
В серверном логе повторы тоже не у всех и не каждый раз.
 
Так или иначе, кто-то распространил способ обновления софта здешним билдом Wget, и способ этот работает не всегда правильно.

Всего записей: 1490 | Зарегистр. 19-03-2003 | Отправлено: 17:59 18-08-2015
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chAlx> Если его установить (их ведь для этого качают?), то браузер (Firefox, Seamonkey) будет сам раз в сутки проверять и устанавливать обновления.
 
Ну, я бы всякой проприетарщине самовольно устанавливать что-либо (в том числе свои новые версии) не позволял. А тем более загружать одно и то же с удаленного сервера много раз — для каждой машинки особо — нафиг это надо?

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 20:50 18-08-2015 | Исправлено: ASE_DAG, 20:50 18-08-2015
chAlx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG:
 
Не хочу тут углубляться в оффтоп про сам файл: что бы в нём ни было, проверка свежести должна происходить корректно, без повторных GETов.
Вот здесь описано, что там и где узнать подробнее. Вкратце суть в том, что этот файл нужен только для мозилловских браузеров (как раз на замену проприетарному инсталлеру.exe). В браузеры изначально встроен движок для установки в правильное место, проверки и (по желанию) обновления таких файлов.
 
Аналогия ситуации с этим мифическим скриптом: автомобиль загоняют в специальное СТО, снимают бензобак, взвешивают (вдруг не полный). По результатам (неточного) взвешивания ставят тот же или новый полный бензобак. Вуаля, машина заправлена!

Всего записей: 1490 | Зарегистр. 19-03-2003 | Отправлено: 00:05 19-08-2015 | Исправлено: chAlx, 00:09 19-08-2015
vcrank

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
Может кто-нибудь подсказать, как авторизоваться через wget на сайте http://www.staten.ru/ ?
Чтобы скачать файл по ссылке - http://www.staten.ru/user/download/price_xls/

Всего записей: 702 | Зарегистр. 24-10-2005 | Отправлено: 17:58 25-08-2015 | Исправлено: vcrank, 18:31 25-08-2015
Pasha_ZZZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vcrank
Для проверки надо иметь валидные данные для авторизации на данном сайте...

Всего записей: 3758 | Зарегистр. 11-03-2002 | Отправлено: 19:45 25-08-2015
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vcrank, тут на самом деле два варианта:
 
— Там нет никаких хитростей, а значит может кто угодно, кто представляет, как вообще посылать веб-формы wgetом.
 
— Там есть какие-то подводные камни, и может всякий, кто имеет действительные логин и пароль, а значит может немного поэкспериментировать.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 19:51 25-08-2015 | Исправлено: ASE_DAG, 19:55 25-08-2015
D1D1D1D

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!
 
Как-то уже задавал вопрос, но сейчас опять не работает. А именно: как скачивать ссылки подобные этим? —

Цитата:
 
http://blogs.yandex.ru/search.xml?text=author%3D%22lj%22&holdres=mark&ft=comments&p=1  
http://blogs.yandex.ru/search.xml?text=author%3D%22lj%22&holdres=mark&ft=comments&p=2  
http://blogs.yandex.ru/search.xml?text=author%3D%22lj%22&holdres=mark&ft=comments&p=3
 

 
По подсказке уважаемого Victor_VG в прошлый раз они качались этой версией программы. Может, дело в сертификате?

Всего записей: 392 | Зарегистр. 04-04-2010 | Отправлено: 07:53 26-08-2015
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vcrank, как успехи-то?
 
D1D1D1D> как скачивать ссылки подобные этим?
 
В наглую. :-)
 
$ wget 'http://blogs.yandex.ru/search.xml?text=author%3D%22lj%22&holdres=mark&ft=comments&p=1'
 
> Может, дело в сертификате?
 
Каком еще «сертификате»? Соединение нешифрованное.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 06:26 27-08-2015
D1D1D1D

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
 
С новейшей версией уважаемого Alex_Piggy начала работать, а как у Вас в примере ни одной из версий не работает))

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



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

Цитата:
С новейшей версией уважаемого Alex_Piggy начала работать, а как у Вас в примере ни одной из версий не работает))  

Да ладно ? Скачал старой 1.11 версией.Вот только нужно ставить опцию --no-check-certificate поскольку там идет редирект на https страницу.
 
Подробнее...

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 13:07 27-08-2015
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mithridat1> там идет редирект на https страницу.
 
Да, действительно.
 
> нужно ставить опцию --no-check-certificate
 
Чего только люде не сделают, лишь бы полноценными сборками не пользоваться. :-) А между прочим, если вы из России, то MITM-атаки с подменой сертификата на «авось примут» на вас более чем вероятны, и не откуда-нибудь, а со стороны вашего поставщика услуг связи, коему вы денюжку платите.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 14:03 27-08-2015 | Исправлено: ASE_DAG, 14:10 27-08-2015
mithridat1



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

Цитата:
А между прочим, если вы из России, то MITM-атаки с подменой сертификата на «авось примут» на вас более чем вероятны, и не откуда-нибудь, а со стороны вашего поставщика услуг связи

Я думаю,что в мире почти нет мест,где такие атаки были бы маловероятны.Да и как то не приходило в голову выкачивать wget-ом какую то приватную инфу.Или вы думаете,что вместо желанного файла мне трояна подсунут ?

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 14:35 27-08-2015
Открыть новую тему     Написать ответ в эту тему

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