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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
volgman
 
Как anprioritet.irr.ru скачивать я пока не понял, действительно перефутболивают непонятно.
 
Но с домашнего сайта этого агентства все скачивается нормально.

Код:
 
@echo off
wget --referer=anprioritet.ru --post-data "action=1&minprice=&maxprice=&region=0&rooms=&minsquare=&maxsquare=&limit=200&submit=%%C8%%F1%%EA%%E0%%F2%%FC%%21" http://anprioritet.ru/database.php

 
В --post-data подставляй нужные значения, action=1 - квартиры, action=2 - комнаты, region= 1 -Брагино, 19 - Вишняки, 2 - Дядьково ....,  limit= - количество обьявлений на странице и т.д.
 

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 04:04 14-01-2010
kerberosV5

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как им качать с FTP-сервера, который требует SSL?

Всего записей: 700 | Зарегистр. 14-07-2008 | Отправлено: 08:30 14-01-2010
tekhoa

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите можно ил в урл листе вместе с сылками указать какое имя файла должна иметь выходная html страница?
 
Добавлено:
и еще почему то на третьем урл в листе происходит сбой в путях к корневой папки
она начинает брать отсчет от самого верхнего уровня. а у меня все должно сохраняться во вложенных папках
то есть верхний уровень это www
а сохраняются сайты каждый в свою папку с названием
так вот картинки и ссылки на странице начинаются не с папки потом . а с верхнего уровня
хотя первые две ссылки прогружаются нормально
 
Добавлено:
wget пишет ошибку при загрузке Error 304: Not modofied
то есть якобы файл уже есть и не изменялся
хотя файла реально нет в папке
 
Добавлено:
попробуйте ктонибудь стянуть страницу полностью с gismeteo.ru  
половину картинок не загружает нихрена. хотя они на том же сайте назодятся

Всего записей: 85 | Зарегистр. 14-06-2007 | Отправлено: 11:15 14-01-2010
slyfly

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет.
Скачал себе wget для венды "на посмотреть". При запуске в консоли он показал кракозябры. Пришлось поэдитом сию русскую локализацию исправить до приемлимого состояния
Результат 5 минут труда выложил сюда: http://ifolder.ru/16212415 (совать, естессна, в \share\locale\ru\LC_MESSAGES\)
может, кому-нибудь пригодится

Всего записей: 1 | Зарегистр. 12-07-2007 | Отправлено: 00:55 02-02-2010 | Исправлено: slyfly, 00:58 02-02-2010
ignatav



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
помогите разобраться что происходит в этой строке и зачем она нужна:

Цитата:
wget ftp://micorsops.com/something.avi -O - | mplayer -

Всего записей: 427 | Зарегистр. 28-05-2006 | Отправлено: 17:08 04-02-2010
iglezz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ignatav
- (дефис) здесь означает использование standard input/output, стандартного ввода/вывода вместо файла. (в/из терминала/консоли)
| (труба) передает содержимое stdout первой команды на stdin второй
 
Таким образом в случае
Код:
wget ftр://micorsops.com/something.avi -O - | mplayer -
качаемый something.avi передаётся с stdout wget`а на stdin mplayer`а. Эдакое потоковое видео получается....
 
Хотя конкретно этот пример является костылём, т.к. mplayer ftр://micorsops.com/something.avi прекрасно работает :)

Всего записей: 573 | Зарегистр. 18-02-2003 | Отправлено: 21:13 04-02-2010 | Исправлено: iglezz, 21:20 04-02-2010
ignatav



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
iglezz
спасибо, за подробное объяснение
 
мне этот костыль нужен что бы "онлайн" смотреть мплеером фильм который лежит на хттп сервере и по прямой ссылке не отдается
 
правда прикрутить это решение к фаерфоксу я пока не смог
 
Добавлено:
может подскажете как сделать так, что бы ссылки отправляемые вгету  
wget http://micorsops.com/something.avi
обрабатывались им вот так  
http://micorsops.com/something.avi  -O - | (тут путь к мплееру)mplayer -

Всего записей: 427 | Зарегистр. 28-05-2006 | Отправлено: 21:50 04-02-2010 | Исправлено: ignatav, 22:03 04-02-2010
iglezz

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

Всего записей: 573 | Зарегистр. 18-02-2003 | Отправлено: 07:12 05-02-2010
ignatav



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
iglezz
я где-то читал что рядом с вгетом ложат файл а в нем указывают параметры которые вгет и использует по умолчанию
 
вот я и думаю, можно что бы он сам подставлял эти параметры -O - | mplayer -?

Всего записей: 427 | Зарегистр. 28-05-2006 | Отправлено: 12:42 05-02-2010
iglezz

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

Цитата:
я где-то читал что рядом с вгетом ложат файл а в нем указывают параметры которые вгет и использует по умолчанию
Называется он .wgetrc и хранится обычно в домашнем каталоге пользователя (хотя win32 версия может и иначе умеет)

Цитата:
вот я и думаю, можно что бы он сам подставлял эти параметры -O - | mplayer -?
Вот этого уже сделать нельзя.  
Да и скрипт несложно написать.

Всего записей: 573 | Зарегистр. 18-02-2003 | Отправлено: 14:22 05-02-2010 | Исправлено: iglezz, 14:26 05-02-2010
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ignatav
Мне лениво FireFox качать-устанавливать, но насколько я помню, там во FlashGot можно запустить что угодно и передать этому "что угодно" ссылку. Укажи в качестве качалки батник:
 
wget %* -O - | mplayer

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 15:15 05-02-2010
ignatav



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

Всего записей: 427 | Зарегистр. 28-05-2006 | Отправлено: 15:42 05-02-2010
aak1980



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
друзья помогите по wgetу
 
При копировании каталога c ftp со всеми вложенными каталогами и файлами в локальный каталог
например так:
 
C:\wget.exe -r -P C:\MyDir  ftp://ftp.foo.com/subdir/*
 
В моем каталоге C:\MyDir создается подкаталог с именем ftp сервера, например так:
C:\MyDir\ftp.foo.com\
а в этот подкаталог уже копируется все остальное, но мне не нужно создание этого подкаталога. Что тут можно сделать?
 
Решилось добавлением ключа -nH
 
Всем спасибо!

Всего записей: 52 | Зарегистр. 24-11-2006 | Отправлено: 20:04 10-02-2010 | Исправлено: aak1980, 20:11 10-02-2010
hrushka



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мои знания Wget не позволили работать с SFTP    Кто знает как это сделать?

Всего записей: 25 | Зарегистр. 11-08-2004 | Отправлено: 15:52 19-02-2010
ziii



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста автоматизировать обновление  
Miranda (beta версий 9х, например: http://files.miranda-im.org/builds/miranda-v090a6w.7z)  и
Media Player Classic Home Cinema с http://www.xvidvideo.ru/media-player-classic-home-cinema-x86-x64
 
Как сказать wget скачивать их последние версии?
 
Может кто сталкивался?
Заранее благодарю.

Всего записей: 400 | Зарегистр. 09-08-2007 | Отправлено: 14:22 25-02-2010 | Исправлено: ziii, 15:31 25-02-2010
iglezz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ziii
Одним wget'ом здесь не справиться — надо скрипт писать с разбором html-страничек и выдёргиванием нужных ссылок.

Всего записей: 573 | Зарегистр. 18-02-2003 | Отправлено: 22:07 25-02-2010
ziii



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ещё, скажите пожалуйста, как можно проще загрузить последнюю версию dll-ки с адреса
http://sites.google.com/site/foobar2000components/home/uihacks
?
wget -m -A .7z http://sites.google.com/site/foobar2000components/home/uihacks - не хочет работать ...
wget -m -A.zip http://wintense.com/download/ - не хочет работать ...

Всего записей: 400 | Зарегистр. 09-08-2007 | Отправлено: 15:13 26-02-2010 | Исправлено: ziii, 08:17 27-02-2010
Victor_VG

Редактировать | Цитировать | Сообщить модератору
ziii
 
А вот это не смотрел?

Цитата:
# $Id: robots.txt,v 1.7.2.1 2007/03/23 18:57:07 drumm Exp $
#
# robots.txt
#
# This file is to prevent the crawling and indexing of certain parts
# of your site by web crawlers and spiders run by sites like Yahoo!
# and Google. By telling these "robots" where not to go on your site,
# you save bandwidth and server resources.
#
# This file will be ignored unless it is at the root of your host:
# Used:    http://example.com/robots.txt
# Ignored: http://example.com/site/robots.txt
#
# For more information about the robots.txt standard, see:
# http://www.robotstxt.org/wc/robots.html
#
# For syntax checking, see:
# http://www.sxw.org.uk/computing/robots/check.html
 
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /download/
Allow: /

У ребят там именно от роботов редирект поставлен, думаю сначала надо браузером сбегать, и посмотреть, что команду дал не правильно:
 
wget -m -A.zip http://wintense.com/download/
 
В итоге у меня с твоей командой пришло после указания имени архива:

Цитата:
$wget -m -A.zip http://wintense.com/download/foo_w7shell_0.2.9.1.zip
--2010-02-27 06:34:31--  http://wintense.com/download/foo_w7shell_0.2.9.1.zip
Resolving wintense.com... 174.120.117.90
Connecting to wintense.com|174.120.117.90|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://wintense.com/wp-content/uploads/2010/01/foo_w7shell_0.2.9.1.zip
 [following]
--2010-02-27 06:34:31--  http://wintense.com/wp-content/uploads/2010/01/foo_w7sh
ell_0.2.9.1.zip
Reusing existing connection to wintense.com:80.
HTTP request sent, awaiting response... 200 OK
Length: 120930 (118K) [application/zip]
Saving to: `wintense.com/wp-content/uploads/2010/01/foo_w7shell_0.2.9.1.zip'
 
100%[======================================>] 120,930     89.9K/s   in 1.3s
 
2010-02-27 06:34:33 (89.9 KB/s) - `wintense.com/wp-content/uploads/2010/01/foo_w
7shell_0.2.9.1.zip' saved [120930/120930]
 
FINISHED --2010-02-27 06:34:33--
Downloaded: 1 files, 118K in 1.3s (89.9 KB/s)

Я бы предложил использовать связку скрипт + wget. В скрипте желательна команда типа ls/list и парсер который выберет самое старшее значение имени, и передаст в wget на закачку.

Отправлено: 05:38 27-02-2010
ziii



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Благодарю, для wintense скрипт написал, а вот для foobar2000components и xvidvideo особенно посложнее будет...  
Да и miranda через две страницы ссылки искать придётся ...
Странно, почему так неудобно выкладывают свои продукты?

Всего записей: 400 | Зарегистр. 09-08-2007 | Отправлено: 08:21 27-02-2010
ziii



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скажите пожалуйста, как проверить, для последующей обработки скриптом, есть ли по указанному адресу более новый файл чем уже полученный в прошлый раз?
Задача стереть старые файлы, например, если загружен новый файл foo_w7shell_0.2.9.1.zip, то foo_w7shell_0.2.8.0.zip ... стереть
Если же foo_w7shell_0.2.9.1.zip - последняя версия, ранее загруженная, то этот файл остаётся для проверки обновлений.

Всего записей: 400 | Зарегистр. 09-08-2007 | Отправлено: 19:34 27-02-2010 | Исправлено: ziii, 20:16 27-02-2010
Открыть новую тему     Написать ответ в эту тему

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