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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178

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

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 бит отдельные пакеты) | Wget2.
.
 
Литература.
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’а
 

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

Всего записей: 1551 | Зарегистр. 17-06-2003 | Отправлено: 13:39 08-11-2003 | Исправлено: anynamer, 11:40 25-12-2023
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день, kenny5705
416 - файл скачан полностью ("Запрашиваемый диапазон некорректен"). И по логу - уже существует файл Windows6.1-KB2511455-86.msu размером 464402. С "-с" точно так же будет выдаваться 416. (Или Вы имеете в виду,что по одному файлу выдается "200" и затем "The file is already fully retrieved; nothing to do."??? Это уже непорядок.)
 
503 - "Сервер AkamaiGHost не может отработать запрос по техническим причинам (внутренняя ошибка или перегрузка)" - какие-то нелады с промежуточным сервером. Никак не связано с ключами Wget. Кстати, файл тоже уже существует ("Range: bytes=464402-")

Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 20:08 14-03-2013
kenny5705



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

Цитата:
И по логу - уже существует файл Windows6.1-KB2511455-86.msu размером 464402.

Цитата:
Кстати, файл тоже уже существует ("Range: bytes=464402-")
Ага, и там и там файлы уже существовали.

Цитата:
503 - "Сервер AkamaiGHost не может отработать запрос по техническим причинам (внутренняя ошибка или перегрузка)" - какие-то нелады с промежуточным сервером. Никак не связано с ключами Wget.
Понятно. Сегодня, кстати, эту ошибку не видел.
 

Цитата:
Или Вы имеете в виду,что по одному файлу выдается "200" и затем "The file is already fully retrieved; nothing to do."??? Это уже непорядок

Бывает иногда и такое:
Подробнее...
 
или с ключом "-d" тоже как то ловил аналогичное:
Подробнее...
 
Команда wget следующая:
wget.exe -cNd -a log2.txt http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe
 
Но все же чаще появляется "416 Requested Range Not Satisfiable".  
А если точней, то в последний раз было в 114 из 119 случаев. Цифра 114 не постоянная, но в 3 испытаниях была больше 100. При этом все 119 файлов были заранее полностью скачаны.
Странно все это
 
Цель та же - организовать скачивание/докачивание файлов с проверкой по дате последнего изменения.  
Если файл отсутствует на диске - скачать его.
Если файл на сервере новее - перекачать его.  
Если файл недокачан - докачать его.  
Windows.

Всего записей: 468 | Зарегистр. 15-01-2009 | Отправлено: 19:48 15-03-2013 | Исправлено: kenny5705, 20:40 15-03-2013
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kenny5705
 
А под тэг море листинги спрятать можно? Они же огромные.
 
И ещё, просто поглядел на вскидку:
 
cURL 7.28.1
 
  % Total    % Received  %   Xferd  Average Speed   Time     Time     Time  Current    Dload  Upload   Total   Spent    Left  Speed
  92 48.0M   92  44.2M    0     0      1572k      0      0:00:31  0:00:28    0:00:03        1553k
 
Wget 1.14
 
wget -c -N -nd --trust-server-names --no-check-certificate http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe
 
что надо пропускается, всё докачивается, потерь данных в серии из 20 запусков не было.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33227 | Зарегистр. 31-07-2002 | Отправлено: 20:33 15-03-2013 | Исправлено: Victor_VG, 20:44 15-03-2013
kenny5705



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Цитата:
А под тэг море листинги спрятать можно? Они же огромные.
ОК

Цитата:
что надо пропускается, всё докачивается, потерь данных в серии из 20 запусков не было.
В принципе и у меня вроде как докачивается и пропускается. Потерь тоже не замечал.
А request у вас тоже "416 Requested Range Not Satisfiable"?

Всего записей: 468 | Зарегистр. 15-01-2009 | Отправлено: 20:53 15-03-2013 | Исправлено: kenny5705, 20:53 15-03-2013
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kenny5705
 
Ошибок не получал, но у меня через ./etc/wget.conf он в фон летит, а в stderrr|grep|wgetlog только ошибки переправляются которые grepp на лету фильтрует и в лог. У меня там было пусто и с cURL и с wget. Может это у вас где-то просто нет контакта в каком разъёме и сеть дурит? Я не думаю что стоит сначала искать сложную причину не исключив всё возможно простое.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33227 | Зарегистр. 31-07-2002 | Отправлено: 04:11 16-03-2013
kenny5705



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

Цитата:
Может это у вас где-то просто нет контакта в каком разъёме и сеть дурит? Я не думаю что стоит сначала искать сложную причину не исключив всё возможно простое

Ага, но с сетью - полный порядок. С ОСью тоже, из под виртуалки та же ситуация.
 
Заметил другую ошибку, при использовании "-cN" файл не докачивается
Команда эта:
wget.exe -cNd -a log.txt http://download.microsoft.com/download/2/B/A/2BA0BE24-CA5F-4E8E-8FCC-E08DDE80D4B1/Windows8-RT-KB2756872-x86.msu
Wget этот
Подробнее...
 
Добавлено:
Может быть в версии дело?
Или попробовать aria2c или cURL. У них есть версии для windows?
Вроде как в ней тоже есть возможность докачки файлов со сравнением по дате модификации...

Всего записей: 468 | Зарегистр. 15-01-2009 | Отправлено: 10:49 16-03-2013 | Исправлено: kenny5705, 12:24 16-03-2013
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kenny5705
 
Это ошибка HTTP 1.1 описанная в RFC 2616 секция 10.4.17. Проверяйте ключи вызова. Я сейчас не смогу вам их подсказать - срочная работа по прибитию чужого бага возникла.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33227 | Зарегистр. 31-07-2002 | Отправлено: 13:13 16-03-2013
kenny5705



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

Всего записей: 468 | Зарегистр. 15-01-2009 | Отправлено: 13:21 16-03-2013
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Порты для Win есть и у aria2 и у cURL. Последняя собранная версия cURL 7.29.0 есть на сайте проекта, статически (не требующая внешних библиотек) 7.28.1 есть на сайте у Dirk Paehl (в этом разделе у Дирка много интересных и полезных утилит - Open Source Freeware, возьмите на заметку - при нужде выручит). К ней на сайте у Дирка есть и GUI, но cURL не работает со списками URL, хотя возможности у него фантастические, в том числе и по протоколам:
Цитата:
curl is a command line tool for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume, proxy tunneling and a busload of other useful tricks.  


----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33227 | Зарегистр. 31-07-2002 | Отправлено: 13:37 16-03-2013
kenny5705



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Попробовал cURL. Походу та же фигня. Начинает возникать такое чувство, что это тупо стандартом не предусмотрено. И придется выбрать или контроль по времени, без докачки, или докачивание, но без контроля на последнее изменение.  
 
Или, наверно, буду запускать 2 команды друг за дружкой.  
Одна будет проверять не появился ли файл на сервере новее имеющегося, и если он новее - скачивать его:
wget.exe -N http://download.microsoft.com/download/2/B/A/2BA0BE24-CA5F-4E8E-8FCC-E08DDE80D4B1/Windows8-RT-KB2756872-x86.msu
Вторая - проверять скачался ли он полностью, и если не скачался - докачивать его:
wget.exe -c http://download.microsoft.com/download/2/B/A/2BA0BE24-CA5F-4E8E-8FCC-E08DDE80D4B1/Windows8-RT-KB2756872-x86.msu

Всего записей: 468 | Зарегистр. 15-01-2009 | Отправлено: 16:53 16-03-2013 | Исправлено: kenny5705, 16:59 16-03-2013
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kenny5705
 
Наверное проще стоит - nnCron с его плагинами один из которых умеет проверять сайты на изменения и вызов качалки в задаче.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33227 | Зарегистр. 31-07-2002 | Отправлено: 17:41 16-03-2013
kenny5705



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Нет, не проще.
Нужен консольный менеджер загрузок для Виндовс, который мог бы докачивать недокачанные файлы, и сравнивать скачанные по времени последней модификации с файлами на сервере.

Всего записей: 468 | Зарегистр. 15-01-2009 | Отправлено: 20:17 16-03-2013
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день, kenny5705 Victor_VG
Это вопрос к уважаемому Victor_VG, как к администратору с большим стажем.
Возможна ли ситуация, что сервер "Microsoft-IIS/8.0" с ip==92.123.67.90 корректно отрабатывает запрос по методу "GET" и некорректно - по методу "HEAD". При этом такой же сервер с ip==23.62.99.19, вызываемый по тому же DNS корректно обрабатывает оба метода? Чем это может быть вызвано? Возможно ли это обойти со стороны пользователя? При прямом обращении по ip возвращается 400 - Bad Request. При обращении по DNS сервера вызываются случайным образом.

Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 23:44 16-03-2013
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
 
Судя по ответу WhoIs это разные сервера - один в США, второй где-то в Европе стоит, а то, что они адресуются одним DNS это просто - DNS сервера если в его БД нет нужных для разрешения запроса записей обращаются по цепочке к корневым DNS и через них к тем DNS у которых есть нужная информация, а   потом кэшируют полученный ответ локально для ускорения обработки запросов. И как именно они настроены знают только их админы, а выбор конкретного сервера определяется временем его ответа - чем оно короче, тем вероятнее что он меньше нагружен и клиент выбирает его. Автобалансировка нагрузки.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

Всего записей: 33227 | Зарегистр. 31-07-2002 | Отправлено: 04:56 17-03-2013
kenny5705



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не могу найти ключ в команде cURL для ведения log-файла.  
Victor_VG не подскажете нужный?
 
Для проверки по времени и поддержки докачки нашел:
curl.exe -O -z dotnetfx45_full_x86_x64.exe http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe
curl.exe -O -C - http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe

 
UPD:
Нашел
curl.exe -O --stderr - -z dotnetfx45_full_x86_x64.exe http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe >> log_curl.txt
curl.exe -O --stderr - -C - http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe >> log_curl.txt

Всего записей: 468 | Зарегистр. 15-01-2009 | Отправлено: 10:18 17-03-2013 | Исправлено: kenny5705, 10:52 17-03-2013
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день, kenny5705
Пожалуйста, обратите внимание на ключи "-f"(в случае ошибок сервера не сохранять ответ) "-L"(следовать перенаправлениям) "-R"(получать время файла с сервера). Возможно еще добавить "-X GET", но не уверен.

Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 11:26 17-03-2013
kenny5705



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что могут означать эти ошибки?
curl.exe -# -O -z dotnetfx45_full_x86_x64.exe http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe
Код:
Warning: Illegal date format for -z, --timecond (and not a file name).
Warning: Disabling time condition. See curl_getdate(3) for valid date syntax.
######################################################################## 100,0%

 
curl.exe -# -O -C - http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe
Код:
######################################################################## 100,0%
curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume.

 
И можно ли от них избавиться?
cURL 7.28.1
 
Добавлено:
Alex_Piggy

Цитата:
Пожалуйста, обратите внимание на ключи "-f"(в случае ошибок сервера не сохранять ответ) "-L"(следовать перенаправлениям) "-R"(получать время файла с сервера). Возможно еще добавить "-X GET", но не уверен.

Хорошо, попробую

Всего записей: 468 | Зарегистр. 15-01-2009 | Отправлено: 11:42 17-03-2013 | Исправлено: kenny5705, 11:44 17-03-2013
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
kenny5705
Первая ошибка - отсутствует файл, с которым Вы сравниваете время. Попробуйте так:

Код:
 
if exist dotnetfx45_full_x86_x64.exe curl.exe -# -O -z dotnetfx45_full_x86_x64.exe http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe
 

 
Второе, к сожалению, не могу поймать. Похоже, у MS серверов проблемы с восприятием заголовка "Range".  Посмотрите подробный лог при помощи "-v".
Добавлено
Да, из консольных качалок есть еще aria2c, которая сохраняет состояние в отдельный файл. Но она весит побольше (5,6 Mb из архива, 1,8 Mb после обработки UPX).

Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 12:07 17-03-2013 | Исправлено: Alex_Piggy, 12:14 17-03-2013
kenny5705



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

Цитата:
"-f"(в случае ошибок сервера не сохранять ответ)

http://curl.haxx.se/docs/manpage.html#-f
Я правильно понял, что в некоторых случаях сервер вместо нужного файла может выдавать html-страницу, и чтобы cURL не сохранял ее нужно использовать это ключ.

Цитата:
-L"(следовать перенаправлениям) "

Это, по-моему, в моем случае не применимо.

Цитата:
"-R"(получать время файла с сервера)

http://curl.haxx.se/docs/manpage.html#-R
Он же и так вроде получает С ключом и без ключа - одно и то же.

Цитата:
Возможно еще добавить "-X GET", но не уверен.

http://curl.haxx.se/docs/manpage.html#-X
А cURL ведь и так по-этому методу передает, по умолчанию. Другое дело если попробовать HEAD (вместе с "-I"), POST, PUT. Надо будет как-нибудь испробовать эти варианты.
 

Цитата:
Первая ошибка - отсутствует файл, с которым Вы сравниваете время. Попробуйте так:  

Блин, мог бы сам догадаться Спасибо

Цитата:
Второе, к сожалению, не могу поймать. Похоже, у MS серверов проблемы с восприятием заголовка "Range".

Это было не только с MS. Причем тоже не всегда.
 
Еще одна странность:
curl.exe -v -f -O -C - http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe
Результат
- опять та же 416. И сервер возвращает html-страничку (судя по Content-Type: text/html).  
При этом если переключиться на режим "-X HEAD -I" вроде как "200 ОК":
Результат

Всего записей: 468 | Зарегистр. 15-01-2009 | Отправлено: 16:35 17-03-2013 | Исправлено: kenny5705, 17:05 17-03-2013
Alex_Piggy

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

Цитата:
Цитата: "-f"(в случае ошибок сервера не сохранять ответ)   http://curl.haxx.se/docs/manpage.html#-f  Я правильно понял, что в некоторых случаях сервер вместо нужного файла может выдавать html-страницу, и чтобы cURL не сохранял ее нужно использовать это ключ.

При любом отказе сервера содержимое отказа сохранится в файл. Те же самые 416, 404 или 503.
 

Цитата:
Цитата: -L"(следовать перенаправлениям) "   Это, по-моему, в моем случае не применимо.

Хорошо. Файлам с содержанием "301 Moved Permanently" тогда удивляться не следует.
 

Цитата:
Цитата: "-R"(получать время файла с сервера)   http://curl.haxx.se/docs/manpage.html#-R  Он же и так вроде получает. С ключом и без ключа - одно и то же.

Получает, но не устанавливает. Без "-R" сложно быть уверенным, что "-z" отработает правильно.
 

Цитата:
Возможно еще добавить "-X GET", но не уверен.   http://curl.haxx.se/docs/manpage.html#-X  А cURL ведь и так по-этому методу передает, по умолчанию. Другое дело если попробовать HEAD (вместе с "-I"), POST, PUT. Надо будет как-нибудь испробовать эти варианты.

Он по HEAD получает только заголовки. А по PUT попробует файл отправить.  
http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods
 

Цитата:
curl.exe -v -f -O -C - http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe  Результат  - опять та же 416. И сервер возвращает html-страничку (судя по Content-Type: text/html).   При этом если переключиться на режим "-X HEAD -I" вроде как "200 ОК":  Результат

Пожалуйста, поймите 416 - это не всегда ошибка. При докачке файла неизвестного размера посылается запрос на получение остатка файла - то самое "Range: bytes=50352408-". И сервер может вернуть или 206 (частичная закачка) или 416 (диапазон не верен. Это означает, что файл скачан полностью).
Когда Вы посылаете "-X HEAD" или "-I" сервер правильно возвращает 200, но не передает файл (и поэтому 200, а не 206).

Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 19:47 17-03-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 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178

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


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru