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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ, спасибо, если разберусь - обязательно испробую .

Всего записей: 120 | Зарегистр. 13-06-2005 | Отправлено: 16:05 14-07-2011
XINSIDE



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

Цитата:
KOXAH  
 Писал под себя, качает 9 и 11 версию, удаляет старые (сравнивает по дате и времени в имени файла). Скрипт положить в папку с wget.exe, тут же создать папку AVPTool.  
ZIP в UUE

не могу создать файл uue с нужным содержимым (запарился, все время битый архив), можно просто выложить на обменник.

Всего записей: 237 | Зарегистр. 12-12-2005 | Отправлено: 19:07 14-07-2011
Pasha_ZZZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
XINSIDE
Нормально все, скопировал и распаковал.
Вот обменник - http://www.mediafire.com/?0z7ovx49npcdr9v
 
Ты наверное на [?] наводил и оттуда копировал? Там текст со смайлами - вот и ошибка. Надо ткнуть на сслыку тега [море] и уже на открывшейся странице копировать.

Всего записей: 3758 | Зарегистр. 11-03-2002 | Отправлено: 19:19 14-07-2011 | Исправлено: Pasha_ZZZ, 19:28 14-07-2011
ognigrad



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
с помощью wget скачиваю архив с сервера (использую ключ -N), закачка происходит нормально, но если на ftp сервере добавят файлы в rar архив закачка не происходит а просто увеличивается размер rar  архива на локальном компьютере по идее используя этот ключ -N wget должен увидев что произошли изменения в архиве закачать этот архив но этого не происходит а просто увеличивается размер архива на локальном компьютере без добавления файлов в архиве, в чем может быть проблема?
 
 
использую такой батник не сам писал нашел в инете пути просто под себя указал
C:\test\batnik\wget.exe -m -c -N -nH -nd -np -A ".rar" --passive-ftp "ftp://1c:[email protected]/old/" -P C:\test\proba -o out.txt
find /i "not retrieving." out.txt
if %ERRORLEVEL% == 0 goto NO_D
echo Скачали файл
goto END
:NO_D
echo Не скачали файл
:END
 

Всего записей: 3 | Зарегистр. 27-07-2011 | Отправлено: 21:20 27-07-2011 | Исправлено: ognigrad, 21:54 27-07-2011
ASE_DAG



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

Цитата:
On the other side of the coin, while using `-c', any file that's bigger on the server than locally will be considered an incomplete download and only
       `(length(remote) - length(local))' bytes will be downloaded and tacked onto the end of the local file.  This behavior can be desirable in certain cases--for
       instance, you can use `wget -c' to download just the new portion that's been appended to a data collection or log file.
 
       However, if the file is bigger on the server because it's been _changed_, as opposed to just _appended_ to, you'll end up with a garbled file.  Wget has no
       way of verifying that the local file is really a valid prefix of the remote file.  You need to be especially careful of this when using `-c' in conjunction
       with `-r', since every file will be considered as an "incomplete download" candidate.


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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 21:35 27-07-2011
ognigrad



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да действительно убрал -с теперь нормально. Спасибо большое.

Всего записей: 3 | Зарегистр. 27-07-2011 | Отправлено: 21:53 27-07-2011
bugmenot121



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не могу скачать  http://esdownload.symantec.com/akdlm/CD/MTV/pcAnywhere_12_5_0_442_Corporate_Ed_AllWin_ML_CD_Image.iso
файл на сервере не удаляли  
качаю так  wget esdownload.symantec.com/akdlm/CD/MTV/pcAnywhere_12_5_0_442_Corporate_Ed_AllWin_ML_CD_Image.iso

Всего записей: 602 | Зарегистр. 25-10-2010 | Отправлено: 18:32 04-08-2011
Engaged Clown



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bugmenot121
У меня через браузер выдаёт

Цитата:
Access Denied
You don't have permission to access "http://esdownload.symantec.com/akdlm/CD/MTV/pcAnywhere_12_5_0_442_Corporate_Ed_AllWin_ML_CD_Image.iso" on this server.

Всего записей: 7019 | Зарегистр. 08-06-2006 | Отправлено: 19:36 04-08-2011
Pasha_ZZZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
Wget has no way of verifying that the local file is really a valid prefix of the remote file
Что, и правда никакого способа узнать нет? Нельзя ли сделать так, чтобы при совпадении таймстампов вгет производил докачку, а при несовпадении - скачивал по новой?

Всего записей: 3758 | Зарегистр. 11-03-2002 | Отправлено: 20:24 04-08-2011
sikemo

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
/Ubuntu/
Друзья, подкажите, как повести себя.  
есть список статей под выкачку, кодируется кириллицей.  
А Б В Г Д Е Є Ж З І Ї К Л М Н П Р С Т Ф Х Ч Ц Ш Щ Ь Ю Я  
адреса, соотвесттвенно
http://www.nspu.org.ua/dovidnyk/А
http://www.nspu.org.ua/dovidnyk/Б
http://www.nspu.org.ua/dovidnyk/В
http://www.nspu.org.ua/dovidnyk/Г
http://www.nspu.org.ua/dovidnyk/Д
 
Я их сохранил под LibreOffice as txt, CP-1251. Соответственно, в wget они пошли как кракозябры. Скачиваться-то они скачиваются, а как надо задать, чтоб получить на выхоле страницы под именем  
А.html
Б.html …
а не
%D0%259D
 
 

Всего записей: 921 | Зарегистр. 27-11-2008 | Отправлено: 20:32 04-08-2011
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопрос к знатокам.
 
От чего может зависить, то что один FTP с помощью Wget зеркалиться без проблем, а др. FTP ничего не даёт скачать ?
 
Вход на FTP без пароля !

Всего записей: 1160 | Зарегистр. 28-10-2007 | Отправлено: 20:47 04-08-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bugmenot121
> http://esdownload.symantec.com/akdlm/CD/MTV/pcAnywhere_12_5_0_442_Corporate_Ed_AllWin_ML_CD_Image.iso
Совершенно верно, 403 Forbidden.
 
Pasha_ZZZ
> Нельзя ли сделать так, чтобы при совпадении таймстампов вгет производил докачку, а при несовпадении - скачивал по новой?
Сделать пользователю, используя исключительно Вэ-гет? Нет, насколько я знаю, нельзя.
Сделать пользователю, набросав скриптик? ИМХО, без проблем.
Сделать разработчику сабжа? По всей видимости, можно, но по какой-то причине так не сделано.
 
sikemo
> LibreOffice
О_о Вы бы еще MSO Word под Вайном для этого использовали.

 
> CP-1251
Удивляюсь, как оно вообще скачалось. Не используйте кодировки, отличные от локали.
 
> чтоб получить на выхоле страницы под именем А.html, а не %D0%259D
Ключ --restrict-file-names=nocontrol, чтоб «А», и ключ --adjust-extension (он же -E), чтоб «.html».
 
$ wget --restrict-file-names=nocontrol --adjust-extension http://www.nspu.org.ua/dovidnyk/Ї
--2011-08-04 23:00:15--  http://www.nspu.org.ua/dovidnyk/%D0%87
Распознаётся www.nspu.org.ua (www.nspu.org.ua)... 213.186.121.66
Устанавливается соединение с www.nspu.org.ua (www.nspu.org.ua)|213.186.121.66|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: нет информации [text/html]
Saving to: «Ї.html»
 
    [  <=>                                                                                                                            ] 32 343       156K/s   в 0,2s      
 
2011-08-04 23:00:15 (156 KB/s) - «Ї.html» saved [32343]

 
vitrzn
> Вопрос к знатокам.
> один FTP
> др. FTP
> ничего не дает
Не, это не к знатокам, это сразу к телепатам. ;-)

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

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

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

Всего записей: 921 | Зарегистр. 27-11-2008 | Отправлено: 11:01 05-08-2011
Victor_VG

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

Цитата:
Вопрос к знатокам.
 
От чего может зависить, то что один FTP с помощью Wget зеркалиться без проблем, а др. FTP ничего не даёт скачать ?
 
Вход на FTP без пароля !

Вам надо прямиком к г-ну Кашмаровскому и его коллегам по цеху - это по их ведомству. Кроме них в Вашем случае может помочь ещё одна инстанция, но там приём одноразовый, увы.
 
bugmenot121
 
Так и задумано - там нужен валидный реферер и пароль покупки. Уже на старой работе с подобным случаем имел дело. Пока им не пришли деньги и они нем убедились что мы это мы доступ не открывали - формально это закрытый раздел сервера с ограниченным доступом.

Отправлено: 13:02 05-08-2011 | Исправлено: Victor_VG, 13:09 05-08-2011
bugmenot121



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

Цитата:
bugmenot121  
   
 Так и задумано - там нужен валидный реферер и пароль покупки. Уже на старой работе с подобным случаем имел дело. Пока им не пришли деньги и они нем убедились что мы это мы доступ не открывали - формально это закрытый раздел сервера с ограниченным доступом.

спасибо теперь понятно  .
еще 3 вопроса   где скачать wget-1.12 для Windows?
http://gnuwin32.sourceforge.net/packages/wget.htm
здесь только  1.11.4
есть ли альтернатива wget(windows)   ?
не получается скачать файлы с помощью wget   из ftp сервера где фолдеры с русским именами
ftp://myftp.org/Качаем/файлы/фильмы/blabla.avi
failed: Inva
lid argument.
Retrying.
 можно эту проблему исправить?
opera качает без проблем .

Всего записей: 602 | Зарегистр. 25-10-2010 | Отправлено: 13:29 05-08-2011
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день, bugmenot121
В версии 1.21 ввели поддержку  non-ASCII символов.
Скачать - минимум два варианта -  
1. "версия 1.12.1-devel с openssl-1.0.0a" из шапки (autobuild). Не проверял, там может не быть поддержки IRI (Internationalized Resource Identifier).
2. Пару месяцев назад выкладывал билд 2474 (Вам нужен вариант SSL+IRI) http://db.tt/46X8e94
При закачке с сайта с русскими буквами в версии 1.21 указываете дополнительный параметр --local-encoding=CP1251. Для FTP русские символы не проверял! Если не заработает, пожалуйста дайте ссылку.
 
Аналоги... а что именно Вас интересует (какие функции)? Есть cURL.

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 14:17 05-08-2011
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG Victor_VG
Шутники - мля (
 
А просто и посоветовать куда капнуть или тупо описаться, что-то типа того "что политику на фтп определяет админ и он может запретить WGET"
 
А к телепатам я и сам могу перенаправить.  Да толку-то ?
 
С помощью Тотала я на оба ФТП захожу (без пароля) без проблем, а WGET не может с одного качать даже прямо указанный файл (

Всего записей: 1160 | Зарегистр. 28-10-2007 | Отправлено: 14:36 05-08-2011
bugmenot121



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

Цитата:
Добрый день, bugmenot121  
 В версии 1.21 ввели поддержку  non-ASCII символов.  
 Скачать - минимум два варианта -    
 1. "версия 1.12.1-devel с openssl-1.0.0a" из шапки (autobuild). Не проверял, там может не быть поддержки IRI (Internationalized Resource Identifier).
 

этот вариант даже нормально не качает  
wget ftp://ftp.symantec.com/public/english_us_canada/linked_files/pcA/pcAnywhere_12.5_SP2.exe
 
--2011-08-05 15:41:48--  ftp://ftp.symantec.com/public/english_us_canada/linked
files/pcA/pcAnywhere_12.5_SP2.exe
  (try: 4) => `pcAnywhere_12.5_SP2.exe'
Connecting to ftp.symantec.com|77.67.22.168|:21... failed: Unknown error.
Connecting to ftp.symantec.com|77.67.22.169|:21... failed: Unknown error.
Connecting to ftp.symantec.com|77.67.22.170|:21... failed: Unknown error.
Connecting to ftp.symantec.com|77.67.22.173|:21... failed: Unknown error.
Connecting to ftp.symantec.com|213.248.114.171|:21... failed: Unknown error.
Connecting to ftp.symantec.com|213.248.114.172|:21... failed: Unknown error.
Connecting to ftp.symantec.com|213.248.114.173|:21... failed: Unknown error.
Connecting to ftp.symantec.com|213.248.114.175|:21... failed: Unknown error.
Retrying.
 

Цитата:
Аналоги... а что именно Вас интересует (какие функции)? Есть cURL

чтобы работал исключительно из командной строки  
 на всех последних версиях windows  
маленький размер
работал без инсталляции  
не нужно ставить дополнительные библиотеки   .net/cygwin/blabla
есть такой/
и качал из ftp/http  

Всего записей: 602 | Зарегистр. 25-10-2010 | Отправлено: 14:46 05-08-2011
Alex_Piggy

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

Цитата:
--2011-08-05 15:41:48--  ftp://ftp.symantec.com/public/english_us_canada/linked  
 files/pcA/pcAnywhere_12.5_SP2.exe  
   (try: 4) => `pcAnywhere_12.5_SP2.exe'  
 Connecting to ftp.symantec.com|77.67.22.168|:21... failed: Unknown error.

У меня с FTP по Вашей ссылке версия из шапки качает нормально (Vista). Попробуйте --debug.
Но она таки без IRI.
 

Цитата:
чтобы работал исключительно из командной строки    
  на всех последних версиях windows    
 маленький размер  
 работал без инсталляции    
 не нужно ставить дополнительные библиотеки   .net/cygwin/blabla  
 есть такой/  
 и качал из ftp/http  

С gnuwin32 точно не берите. Там все с cygwin зачем-то.
Или wget или curl.
Нужны ли Вам SSL (https://) и IRI (http://русские.сайты)?  
Если не нужны -  
Curl попробуйте с http://www.paehl.com/open_source/?CURL_7.21.7  Без SSL - 400 KB.  
Wget 1.14 http://users.ugent.be/~bpuype/wget/  . С  SSL 400 KB.
Wget 1.21 из корня сборки. Без SSL 450 KB, можно ужать UPX.
 
Если нужны, то без SSL(libssl32 libeay32, дополнительно 2 MB) или IDN(libidn libiconv 2 MB) обойтись не получится.
Тогда выберите нужный комплект curl http://www.gknw.net/mirror/curl/win32/. Только в них libidn глючная, лучше заменить.

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 16:35 05-08-2011
Victor_VG

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

Цитата:
С gnuwin32 точно не берите. Там все с cygwin зачем-то.  

POSIX. CygWin ведь его эмулятор. Вот и всё объяснение. Я за curl спасибо! Я уже собирался его из исходников компилить, но раз есть готовый у Дирка, то зачем время терять? Хотя многие вещи у Дирка с ошибками собраны. Например Process Hacker он обычно собирает не рабочий - видимо скрипты где-то у него неверно написаны. Я его вечно для себя собираю из исходников, потому и знаю.

Отправлено: 16:59 05-08-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:37 (c) xForumSaver