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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как получить список- каталог всех файлов фтп сервера?
 
Добавлено:
wget  -m --spider ftp://xxx.ru
 
для каждой папки - свой .listing файл делает, как получить структуру и перечень всех файлов всего фтп сервера в одном файле?

Всего записей: 41 | Зарегистр. 22-12-2005 | Отправлено: 13:49 19-05-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexul
Я себе вот такой батник наваял ftp2htm.zip (~5Kb) Кроме wget, требуется еще geturls.zip , мне лень было циклом for вытаскивать url. Соединение должно быть прямое, без прокси. Wget 1.10.2, с 1.11 не пробовал. Только батник на одном листе делает список всех директорий(не файлов, файлы пишет отдельно), я его написал изначально, что-бы получить листинг очень большого фтп-шника, там только список был за 15 Мб, неудобно на одном листе хранить.

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 14:14 19-05-2008 | Исправлено: igor_andreev, 14:17 19-05-2008
alexul



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо
 
Добавлено:
чет батник не запускается - моргнет консоль черная и все

Всего записей: 41 | Зарегистр. 22-12-2005 | Отправлено: 14:44 19-05-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexul
geturls.exe и wget.exe должны быть в PATH

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 15:34 19-05-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Переделал ftp2htm под sed вместо geturls http://sed.sourceforge.net/grabbag/ssed/sed-3.62.zip (переименовать ssed.exe в sed.exe и положить в PATH)

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 19:26 19-05-2008
alexul



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
"Переделал ftp2htm" а где взять переделанный батник?

Всего записей: 41 | Зарегистр. 22-12-2005 | Отправлено: 06:23 20-05-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexul
Там же, по первой ссылке    
 
 
Добавлено:
На "нормальных" фтп-шниках, где все по-английски, без пробелов и спецсимволов и первый вариант нормально работал, мне его хватало. А тут попробовал фтп своего провайдера проиндексировать, а там ужас ходячий, папки названы типа:
 /жесть)))!/!-=Benny & Benassy=-!/...[@Ваааще %%крутая%% папка@]/ и т.п., батник не мог их проиндексировать. Лень было разбираться, на чем спотыкается, переделал под sed. Тоже наверно не совсем идеальный вариант, но багрепорты принимаются , подправлю, если-что.  
 
Добавлено:
alexul
Кстати его переделать не сложно, чтоб в один файл все содержимое фтп писал.

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 07:00 20-05-2008
alexul



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
"Я себе вот такой батник наваял ftp2htm.zip (~5Kb) "
http://www.prombox.com/andreev/files/nt_batch/ftp2htm.zip
 
там батник под geturl, или это не первая ссылка ?

Всего записей: 41 | Зарегистр. 22-12-2005 | Отправлено: 08:22 20-05-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexul
Первая. Только уже под sed

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 08:28 20-05-2008
777



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите как скачать файл по след. пути. В результате должен скачать архивчик размером 0,5 мб, но wget качает тока 60 кб. если ссылку вставить в мозиллу, то все качается как надо..
 
http://www2.mfd.ru/Export/processExport.aspx?Section=FEP&Tickers=FEP:AFKS%20London;FEP:AMV%20London;FEP:CHGZ%20Frankf;FEP:CHMF%20London;FEP:EAHG%20London;FEP:EESR%20Frankf;FEP:EESR%20London;FEP:FIVE%20London;FEP:GAZP%20Frankf;FEP:GAZP%20London;FEP:GLDN%20Frankf;FEP:GLDN%20NASDAQ;FEP:GUMM%20Frankf;FEP:IKMB%20Frankf;FEP:IRGZ%20Frankf;FEP:KUBN%20Frankf;FEP:KZBE%20Frankf;FEP:LKOH%20Frankf;FEP:LKOH%20London;FEP:LKOHP%20Frankf;FEP:MBT%20London;FEP:MBT%20NYSE;FEP:MENR%20Frankf;FEP:MENRP%20Frankf;FEP:MSNG%20Frankf;FEP:MSNG%20London;FEP:MTL%20NYSE;FEP:NKEL%20Frankf;FEP:NKEL%20London;FEP:NVTK%20London;FEP:OMZD%20London;FEP:PMTL%20London;FEP:ROGR%20Frankf;FEP:ROS%20NYSE;FEP:ROSN%20London;FEP:RTKM%20Frankf;FEP:RTKM%20London;FEP:RTSE%20Berlin;FEP:SAGO%20Frankf;FEP:SIBN%20Frankf;FEP:SIBN%20London;FEP:SNGS%20Frankf;FEP:SNGS%20London;FEP:SVYG%20Frankf;FEP:TATN%20Frankf;FEP:TATN%20London;FEP:TNT%20NYSE;FEP:TRMK%20London;FEP:TZUM%20Frankf;FEP:UEN%20London;FEP:URSI%20Frankf;FEP:VIP%20NYSE;FEP:VTB%20London;FEP:VZRZ%20Frankf;FEP:WBD%20NYSE;&Period=7&sDay=20&sMonth=05&sYear=2004&eDay=21&eMonth=05&eYear=2018&Format=1&SaveType=0&FileName=adr.zip&FieldSeparator=0&DecimalSeparator=1&DateFormat=0&TimeFormat=2&AddFileHeader=1&RecordFormat=0

Всего записей: 636 | Зарегистр. 16-02-2002 | Отправлено: 23:15 21-05-2008 | Исправлено: 777, 23:25 21-05-2008
Victor_VG

Редактировать | Цитировать | Сообщить модератору
777
 
Попробуй отредактировать ссылку. Она явно перекодирована специально для отключения роботов. Правда DM 5.5.3.1131 её взял, но у меня в нём стоит "User-Agent: Microsoft Internet Explorer 6" и он сначала дожидается отработки на сервере ASP-скрипта, а только потом качает. Ты глянь, что получил - 60 Кб очень похоже на стандартный размер ASP-страницы. Скорее всего её и притащила качалка - скрипт не отработался, получите Web-страницу.

Отправлено: 11:53 22-05-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
777
Нормально wget скачивает такие url, ссылку возьми в кавычки и укажи имя выходного файла

Код:

wget -O adr.zip "твоя ссылка"

результат (png, ~80 Кб)

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 15:13 22-05-2008 | Исправлено: igor_andreev, 15:34 22-05-2008
777



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev
спасибо
 
однако мой wget (скачан из шапки) выдает следующее и качает файл 7 килобайт
http://img137.imageshack.us/img137/2958/wgetru1.png
 
код  
 
wget -O adr.zip "http://www2.mfd.ru/E...."  

Всего записей: 636 | Зарегистр. 16-02-2002 | Отправлено: 20:27 22-05-2008 | Исправлено: 777, 21:15 22-05-2008
Victor_VG

Редактировать | Цитировать | Сообщить модератору
777
 
Возьми у меня 1.10.2 SSL русскую. На неё вроде пока никто ещё не жаловался. Работает без ошибок. А размер не ко мне, а к коллегам-переводчикам.

Отправлено: 03:02 23-05-2008
777



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Спасибо, но новая версия не помогла, даже с библиотеками
 
мой код:
'--->
 
wget -O adr.zip "http://www2.mfd.ru/Export/processExport.aspx?Section=FEP&Tickers=FEP:AFKS%20London;FEP:AMV%20London;FEP:CHGZ%20Frankf;FEP:CHMF%20London;FEP:EAHG%20London;FEP:EESR%20Frankf;FEP:EESR%20London;FEP:FIVE%20London;FEP:GAZP%20Frankf;FEP:GAZP%20London;FEP:GLDN%20Frankf;FEP:GLDN%20NASDAQ;FEP:GUMM%20Frankf;FEP:IKMB%20Frankf;FEP:IRGZ%20Frankf;FEP:KUBN%20Frankf;FEP:KZBE%20Frankf;FEP:LKOH%20Frankf;FEP:LKOH%20London;FEP:LKOHP%20Frankf;FEP:MBT%20London;FEP:MBT%20NYSE;FEP:MENR%20Frankf;FEP:MENRP%20Frankf;FEP:MSNG%20Frankf;FEP:MSNG%20London;FEP:MTL%20NYSE;FEP:NKEL%20Frankf;FEP:NKEL%20London;FEP:NVTK%20London;FEP:OMZD%20London;FEP:PMTL%20London;FEP:ROGR%20Frankf;FEP:ROS%20NYSE;FEP:ROSN%20London;FEP:RTKM%20Frankf;FEP:RTKM%20London;FEP:RTSE%20Berlin;FEP:SAGO%20Frankf;FEP:SIBN%20Frankf;FEP:SIBN%20London;FEP:SNGS%20Frankf;FEP:SNGS%20London;FEP:SVYG%20Frankf;FEP:TATN%20Frankf;FEP:TATN%20London;FEP:TNT%20NYSE;FEP:TRMK%20London;FEP:TZUM%20Frankf;FEP:UEN%20London;FEP:URSI%20Frankf;FEP:VIP%20NYSE;FEP:VTB%20London;FEP:VZRZ%20Frankf;FEP:WBD%20NYSE;&Period=7&sDay=20&sMonth=05&sYear=2004&eDay=21&eMonth=05&eYear=2018&Format=1&SaveType=0&FileName=adr.zip&FieldSeparator=0&DecimalSeparator=1&DateFormat=0&TimeFormat=2&AddFileHeader=1&RecordFormat=0"
 
'<--
 
Очень странно - один и тот же код в одной строчке качает разные файлы
Выкладываю скриншот с различиями - то что я заметил, у igor_andreev запрос использует HTTP 1.1, у меня же такой строчки нет..
 
http://img179.imageshack.us/img179/5632/adrwd7.gif

Всего записей: 636 | Зарегистр. 16-02-2002 | Отправлено: 22:49 23-05-2008
igor_andreev

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

Цитата:
Спасибо, но новая версия не помогла, даже с библиотеками

Вряд-ли от версии зависит, но у меня, на всяк случай вот этот wget 332800 байт без всяких библиотек.
http://users.ugent.be/~bpuype/wget/#download

Цитата:
мой код:

Попробовал опять - все пучком, файл там сейчас размером 507829, скачивается нормально.

Цитата:
что я заметил, у igor_andreev запрос использует HTTP 1.1, у меня же такой строчки нет..  

Нее, это у меня рядом с wget.exe лежит файлик настроек .wgetrc и в нем есть строчка "server_response=on". То же самое, что ты запустишь с параметром -S.
wget -S -O adr.zip "url"
Но я и .wgetrc чистоты эксперимента ради убрал - все равно нормально скачал. У тебя что-то другое. А у тебя на самом деле zip архив скачивается(открывается?) или это html страница?
 
 
 
 
Добавлено:
Ааа, понял. Не заметил, что на обеих твоих скриншотах "pause". Ты запускаешь из батника, а я просто вставил url в открытое окошко cmd. Открой батник блокнотом и сделай замену всех "%20" на пробел " ". Без кавычек. То есть в батнике так будет:

Код:

rem это неправильно
wget -O adr.zip "ляляля/FIVE%20London;FEP:GAZP%20Frankf/ляляля"
 
rem вот так нормально скачает
wget -O adr.zip "ляляля/FIVE London;FEP:GAZP Frankf/ляляля"

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 23:13 23-05-2008
777



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот мой файл, это оч похожий архив, однако все "нужные" файлы там пустые
http://ifolder.ru/6692024

Всего записей: 636 | Зарегистр. 16-02-2002 | Отправлено: 23:38 23-05-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну или наоборот, все "%20" замени на "%%20", тот же эффект. Батники едят проценты

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 23:41 23-05-2008
777



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev
Все стало ОК.  
 
Подумать только у нас фондовый рынок уже больше 10 лет, а котироки наших "Газпромов" на иностранных биржах скачать негде в нормальном виде - вот и приходится такие скрипты писать.
 
Grand respect igor_andreev за помощь в победе над коалицией wget&bat!
 
Добавлено:
igor_andreev
Все стало ОК.  
 
Подумать только у нас фондовый рынок уже больше 10 лет, а котироки наших "Газпромов" на иностранных биржах скачать негде в нормальном виде - вот и приходится такие скрипты писать.
 
Grand respect igor_andreev за помощь в победе над коалицией wget&bat!

Всего записей: 636 | Зарегистр. 16-02-2002 | Отправлено: 11:17 24-05-2008
Aeismann



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wget 1.11.3s, не требующий SSL, скомпилен MS VS из http://www.christopherlewis.com/WGet/wget-1.11.3s.zip.
Кто пожелает сделать это сам - после выполнения configure.bat --msvc открыть файл wget-1.11.3s\src\Makefile и перед строкой "!ifndef NO_SSL" вставить "NO_SSL=". После этого запускать nmake.

Всего записей: 174 | Зарегистр. 24-10-2006 | Отправлено: 12:39 18-06-2008
Открыть новую тему     Написать ответ в эту тему

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