Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Wget

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Открыть новую тему     Написать ответ в эту тему

GaDiNa



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[ UNIX Shell ] || [ Рекурсивная загрузка веб-сайтов ] — родительские ветки.
 
GNU Wget

GNU Wget — это свободная неинтерактивная утилита для скачивания файлов по HTTP, HTTPS, FTP и FTPS (и только), обладающая самым базовым функционалом загрузки одиночных файлов и рекурсивной загрузки сайтов (HTTP) и директорий (FTP).
 

| Офсайт | Википедия | Фрешмит | Опен-хаб (бывш. Охлох) | Мануал | Ман | Ман (русск., устар.) | --help (русск.) |

 
Где взять.
Под GNU — уже стоит. Под FreeBSD — есть в портах. Под [Mac] OS X — собрать ванильный.  
Под Windows есть варианты: Cygwin | GNUWin32 (учитывайте зависимости) | Wget + OpenSSL by GetGnuWin32  | by TumaGonx Zakkum (он же osspack32 и The Moluccas  |  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»; у Хрома — «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) и многими другими протоколами на более низком уровне.
wput — клон wget для аплоада файлов на удаленные FTP(S) сервера.
axel — клон wget для многопоточной загрузки одиночных файлов по протоколам HTTP(S) и FTP(S). Порты для Windows: 2.4, 2.16.1
 
Разное.
GUI для Wget’а
 

Смело правьте и дополняйте шапку, однако не забывайте отписываться об исправлениях и сохранять исходный вариант под #.

Всего записей: 1531 | Зарегистр. 17-06-2003 | Отправлено: 13:39 08-11-2003 | Исправлено: juvaforza, 17:27 01-09-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
MisHel64
vitrzn
 
Нормально при настройке демона на нём включается именно пассивный режим потому, что тогда на серверном брандмауэре открываются только рабочие порты и соединение идёт по ним, а при активном режиме необходимо сначала удостоверится что соединение инициировано именно FTP-клиентом с данного IP, и только тогда открывать для него порты. Это сложнее и не всегда возможно, а потому обычно на серверах активный режим отключают. Что касается портов 20 (FTP, данные, TCP) /21 (FTP, управление, TCP) то FTP всегда их использует и по ним если стоит FTP-демон блокировку не ставят.
 
В данном случае вероятно админы сервера использовали активный режим в целях отладки, а после его отключили. В принципе стоит глянуть в командную строку с учётом Wget.ini/wgetrc.conf - нет ли там записи passive_ftp = off (ошибочный формат passiveftp = off) ? По умолчанию (если этот файл берётся из дистрибутива, на примере wgetrc.sample из пакеджа whget-1.14.2.txz FreeBSD 9.2) видно, что эта запись закоментирована:
 
# By default Wget uses "passive FTP" transfer where the client
# initiates the data connection to the server rather than the other
# way around.  That is required on systems behind NAT where the client
# computer cannot be easily reached from the Internet.  However, some
# firewalls software explicitly supports active FTP and in fact has
# problems supporting passive transfer.  If you are in such
# environment, use "passive_ftp = off" to revert to active FTP.
#passive_ftp = off
 
И тут как одна из возможных причин может быть что ваш провайдер изменил у себя настройки серверов. Но в любом случае разумнее добавить в файл настроек запись passive_ftp = on - как минимум будет меньше вероятных проблем с UNIX серверами. К примеру сервера ftp.freebsd.org , ftp.pcbsd.com вообще не работают с клиентом если там включён активный режим. Сообщения в логе:
 
Invalid PORT.
Retrying

 
с активным режимом FTP будут постоянными, и до команд CWD -> LIST дело никогда не дойдёт. Ребята уже на этом нарывались с Far NetBix и cURL-ом -"А почему с сервером ... у меня нет соединения?.".

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")

Всего записей: 24473 | Зарегистр. 31-07-2002 | Отправлено: 16:32 22-08-2013 | Исправлено: Victor_VG, 16:34 22-08-2013
sis_terr



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

Всего записей: 1288 | Зарегистр. 20-12-2007 | Отправлено: 14:20 06-09-2013
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время, sis_terr
К сожалению, не пойму в чем проблема. Постоянные адреса без скриптов и заморочек.
http://www.justfreevpn.com/free-vpn-password/us-free-vpn.gif
http://www.justfreevpn.com/free-vpn-password/uk-free-vpn.gif
http://www.justfreevpn.com/free-vpn-password/ca-free-vpn.gif

Код:
 
Server: &nbsp;<font color="blue">us.justfreevpn.com</font><br />
PPTP Username: &nbsp;justfreevpn<br />
PPTP Password: &nbsp;<img alt="USA Free VPN Account" src="/free-vpn-password/us-free-vpn.gif" style="margin-bottom: -3px;" /></p>
 

Если при помощи только wget (и ничего больше не надо делать), то одной строкой -  
wget -p "http://www.justfreevpn.com/" -A *.gif -e "robots=off" --cut-dirs=2 -nH
Если передать в консольную распознавалку - подумаю... Допишу до конца дня (когда найду подходящую распознавалку).
Добавлено:
Прикрутил GOCR (0.50) + Netpbm (10.63.99) get_vpn.zip Распознавание полу-автоматическое, если встречает то, что узнало как не-цифру - спрашивает.

Всего записей: 1710 | Зарегистр. 07-08-2002 | Отправлено: 15:12 06-09-2013 | Исправлено: Alex_Piggy, 20:05 06-09-2013
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
да если б было у меня просто, то моего ума б хватило)
но не качает  
если по прямой ссылке зайти браузером то пишет
Forbidden
You don't have permission to access /free-vpn-password/uk-free-vpn.gif on this server.
Может это из-за того что у нас тут своя сеть VPN,
 хотя другие прямые ссылки скачиваются нормально
*
лог такой
--2013-09-06 14:27:20--  http://www.justfreevpn.com/free-vpn-password/uk-free-vpn.gif
Resolving www.justfreevpn.com... 108.163.184.238
Connecting to www.justfreevpn.com|108.163.184.238|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2013-09-06 14:27:21 ERROR 403: Forbidden.
*
сейчас ещё покопаюсь
*
(
что то странное, с прямым IP всё равно не качает
лог
--2013-09-06 14:38:26--  http://www.justfreevpn.com/
Resolving www.justfreevpn.com... 108.163.184.238
Connecting to www.justfreevpn.com|108.163.184.238|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `index.html'
 
     0K .......... ......                                      16.8K=1.0s
 
2013-09-06 14:38:28 (16.8 KB/s) - `index.html' saved [16528]
 
Removing index.html since it should be rejected.
 
FINISHED --2013-09-06 14:38:28--
Downloaded: 1 files, 16K in 1.0s (16.8 KB/s)

Всего записей: 1288 | Зарегистр. 20-12-2007 | Отправлено: 15:27 06-09-2013 | Исправлено: sis_terr, 15:45 06-09-2013
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sis_terr
Понял. Просто укажите referer.  
wget --referer="http://www.justfreevpn.com/" "http://www.justfreevpn.com/free-vpn-password/uk-free-vpn.gif"
Та команда, которую я Вам дал скачивает без проблем, так как при зеркалировании указывается реферер.

Всего записей: 1710 | Зарегистр. 07-08-2002 | Отправлено: 15:43 06-09-2013
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alex_Piggy    с referer скачивается нормально  
Только не поняла почему с других сайтов скачивается по прямой ссылке,  
а этот какой то хитрый
*
ага, почитала что это за хитрость, ещё раз благодарю за помощь  

Всего записей: 1288 | Зарегистр. 20-12-2007 | Отправлено: 15:50 06-09-2013 | Исправлено: sis_terr, 15:55 06-09-2013
Linch



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Использовал раньше wget, но была версия совсем старая и решил обновить. Прочел тему в поисках различий между сборками (те которые указаны в шапке) для Windows 7. Конкретно не чего не нашел или возможно пропустил. Из того что все же нашлось, я так понял что версия от Bart Puype стабильная (1.11.4 - wget.exe (401408 bytes)), остальные более экспериментальные?

Всего записей: 469 | Зарегистр. 24-07-2001 | Отправлено: 18:07 08-09-2013
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время, Linch
Это зависит от того, что Вам нужно. Смотрите news.
Я бы считал последней стабильной версию от TumaGonx Zakkum. У Ray Satiro беты и релизы, но тяжелые. У меня - не согласованные изменения.  
Giuseppe Scrivano (текущий maintainer) очень сторожко относится к изменениям и предпочитает скорее не пропустить коммит чем допустить вероятность последующего бага.
CygWin - релиз 1.14 shared
GnuWin32 - Проект давно не обновлялся, последняя - релиз 1.11.4 shared
Ray Satiro (GetGnuWin32) - По ссылке в шапке бета 1.12, Более поздние релизы и беты shared
Bart Puype - Давно не обновлялся, последняя - релиз 1.11.4 static  
TumaGonx Zakkum (osspack32) - релиз 1.14 static
Alex_Piggy - nightly static.

Всего записей: 1710 | Зарегистр. 07-08-2002 | Отправлено: 18:59 08-09-2013
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
Linch
 
Кстати заметил что локали собранные osspack32 с последними сборками Alex_Piggy не распознаются. Ну, для меня это мелочь и я просто их выкинул.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")

Всего записей: 24473 | Зарегистр. 31-07-2002 | Отправлено: 19:35 08-09-2013
Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Linch
Мне немного ранее рекомендовали вариант от osspack32, типа "все включено", можно просто пользоваться. Выложенный Victor_VG ca-bundle.crt залил сюда.

Всего записей: 5811 | Зарегистр. 28-01-2008 | Отправлено: 19:47 08-09-2013
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skif_off
 
Потребуется - список обновлю, но вроде пока отозванных сертификатов не капало...

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")

Всего записей: 24473 | Зарегистр. 31-07-2002 | Отправлено: 21:00 08-09-2013
Linch



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
Отлично. Спасибо.
 
p.s. imho стоит это в шапку добавить
 
Skif_off
проморгал хех (я на этой сборке и остановился), ну зато Alex_Piggy какую полезную информацию подал в результате

Всего записей: 469 | Зарегистр. 24-07-2001 | Отправлено: 00:25 09-09-2013 | Исправлено: Linch, 00:25 09-09-2013
Pompeii

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Какой конфигурационный файл использовать под Win7? wget.ini или .wgetrc? и в чем между ними разница?
 
А так же почему не работает directory-prefix = Download,  когда пытаюсь добавить в wget.ini\wgetrc?
 
И если не сложно подскажите где глянуть пример конфиг файлов (хороших) ?

Всего записей: 10 | Зарегистр. 27-08-2013 | Отправлено: 11:24 09-09-2013
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время
Victor_VG
Спасибо, поправил. Заодно сделал подхват файла сертификата. Скоро дособирается.
 
Pompeii
Может быть потому, что запись в .wgetrc должна иметь вид dir_prefix = Download ?
Разницы между wget.ini и .wgetrc для Wget нет. Разве что .wgetrc ищется первым. Сугубо вопрос привычки к смыслам имен файлов.
 
По поводу хороших конфиг файлов - не подскажу. Универсальные настройки - по умолчанию, а все остальное надо смотреть по месту.

Всего записей: 1710 | Зарегистр. 07-08-2002 | Отправлено: 14:26 09-09-2013
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
 
Спасибо! Соберётся - возьму. Как говорится "Кто последний за колбасой?"
 
И ещё - когда будете править шапку, то поправьте для cURL список его возможностей - протоколы там "зашиты" libcurl, и к примеру у меня она собрана как в BSD, так и Дирком (v7.31.0) под винду с поддержкой dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp. Для работы хватает.
 
Pompeii
 
Ну к примеру у меня так настроено и сделано это специально, т.к. вгет можно вызвать из любого места, и каталог приёмник также может быть произвольный.
 


----------
Жив курилка! (Р. Ролан, "Кола Брюньон")

Всего записей: 24473 | Зарегистр. 31-07-2002 | Отправлено: 15:12 09-09-2013 | Исправлено: Victor_VG, 15:17 09-09-2013
Pompeii

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня почему не подхватывается файл конфига когда я запускаю wget не из его папки. Из за чего может быть такое?

Всего записей: 10 | Зарегистр. 27-08-2013 | Отправлено: 10:35 10-09-2013
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pompeii
 
По умолчанию он ищет их в каталоге приложения или в системных /etc. Иначе надо прямо задавать в ключах его место нахождение.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")

Всего записей: 24473 | Зарегистр. 31-07-2002 | Отправлено: 20:04 10-09-2013 | Исправлено: Victor_VG, 20:21 10-09-2013
Linch



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сегодня пытался скачать файл с опцией continue = on & content_disposition = on. Так вот, если имя файла не определенно и определяется с помощью content_disposition, то докачака (-с) не срабатывает. Это я что-то не правильно делаю или это в порядке вещей?

Всего записей: 469 | Зарегистр. 24-07-2001 | Отправлено: 23:40 10-09-2013 | Исправлено: Linch, 23:48 10-09-2013
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время, Linch
Если у Вас версией 1.11.4 качалось нормально, то, скорее всего,  news 4 пункт - "** Fix a regression when -c and --content-disposition are used together.". Этот баг появился в 1.13 и исправили его год назад (после релиза 1.14).
Если не качалось - то скорее дело в сервере (не позволяет докачку).

Всего записей: 1710 | Зарегистр. 07-08-2002 | Отправлено: 23:50 10-09-2013 | Исправлено: Alex_Piggy, 23:52 10-09-2013
Linch



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
Я уверен что там есть докачка т.к. без ---content-disposition оно докачивает с места обрыва.
Что-то кажется мне в версии от TumaGonx Zakkum просто нет этого багфикса
 
А в твоем wget_ruboard он включен?
 
Важный же фикс, а такая засада с билдами можно конечно качать и потом переименовывать ручками уже по готовому, но это не удобно.

Всего записей: 469 | Зарегистр. 24-07-2001 | Отправлено: 22:21 11-09-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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Компьютерный форум Ru.Board » Компьютеры » Программы » Wget

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru