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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

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’а
 

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

Всего записей: 1528 | Зарегистр. 17-06-2003 | Отправлено: 13:39 08-11-2003 | Исправлено: mithridat1, 08:56 13-02-2019
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Althathwe
 
Берёте мануал и читаете там. Самое надёжное - пользователи могут ошибаться, автор знает.

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

Всего записей: 23922 | Зарегистр. 31-07-2002 | Отправлено: 00:43 21-09-2011
Althathwe

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Читал.
 
upd. Хотя, кажется, сообразил — ария по-умолчанию несколько ссылок интерпретирует, как разные источники одного файла.

Всего записей: 362 | Зарегистр. 16-05-2011 | Отправлено: 01:00 21-09-2011 | Исправлено: Althathwe, 01:43 21-09-2011
sikemo

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, есть возможность скачать книгу с адреса
http://www.amazon.fr/gp/reader/2212124449/ref=sib_dp_pt#reader-link

Всего записей: 1153 | Зарегистр. 27-11-2008 | Отправлено: 13:15 25-09-2011
ASE_DAG



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


----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 16:41 25-09-2011
Weinaum



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
скажите, никто не синхронизирует сабжем документы google docs?
Нашел вот такую howto , но что то видимо изменилось в интерфейсе google docs со времени его написания, путей таких к документам вроде как нету...
В общем, если теоретически возможно, хотелось бы чисто скриптом бэкапить, а еще лучше синхронизировать всю папку целиком на google docs с локальной копией этой папки на своей домашней машине, чтобы скачивались только те файлы, которые новее...

Всего записей: 1939 | Зарегистр. 18-06-2006 | Отправлено: 23:09 30-09-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum
А чем вас googlecl не устроил?

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 23:35 30-09-2011
Weinaum



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Да не то чтобы не устроил...первый раз увидел просто..Спасибо.
Щас поизучаю...вот смотрю доки - а она точно делает то, что мне надо? Т.е. синхронизацию всей папки? Тогда конечно полностью устроит...
Еще бы примерчик, простенький, а то пока никак не пойму, где опции, а где путь к конфиг файлу прописать..

Всего записей: 1939 | Зарегистр. 18-06-2006 | Отправлено: 00:00 01-10-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum
> Т.е. синхронизацию всей папки?
Нет, но сабж-то ее тем более не сделает.
 
> Еще бы примерчик, простенький, а то пока никак не пойму

Код:
#!/bin/bash
IFS="$(echo -e '\t')";
google docs list --delimiter="$IFS" | \
while read NAME URI; do  
    google docs get --format=pdf "$NAME" .;
done

 
(по идее, загрузит все документы в текущую директорию)

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 01:39 01-10-2011 | Исправлено: ASE_DAG, 01:41 01-10-2011
anynamer



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

Всего записей: 1703 | Зарегистр. 17-05-2010 | Отправлено: 12:39 01-10-2011 | Исправлено: anynamer, 12:40 01-10-2011
Weinaum



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

Цитата:
Т.е. синхронизацию всей папки?
Нет, но сабж-то ее тем более не сделает.  

вот жаль, я просто подумал, что раз сабжем вполне комфортно синхронизировать директории со всем содержимым по фтп, то возможно и тут есть способ.
Собственно, я предполагаю, что он(способ) возможно даже и есть, если в исходном скрипте после авторизации прописываю адрес типа docs.google.com/?tab=mo&authuser=0#home - к корневой папке докс, а остальные опции как для случая рекурсивной скачки с нужными мне параметрами, то как будто заходит, но получаю ошибку о неподдерживаемом браузере, скачивается html которая говорит "сорри, ваш браузер не кул", robots.txt и все.... замена юзер агента позволяет обходить это дело, но получаю только сгенерированные html файлы со страницы google...и так может полинета хтмл-ок выкачать...
 
что же касается googlecl, то пока вообще не разберусь, как он работает, прописал в конфиге свой логин- пароль, при запуске выходит браузер с просьбой разрешить - разрешаю, пишет ок, но что то ничего не скачивается...
к тому же, я понял, такое разрешение должно быть единичным, а у меня запрашивает при каждой попытке..
возможно, где-то ошибаюсь, но, впрочем, тут это оффтопик, может, можно продолжить где то в более подходящем для данного зверя теме, только я пока не определился, где..

Всего записей: 1939 | Зарегистр. 18-06-2006 | Отправлено: 13:26 01-10-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
anynamer
> чем  подсветку делали? руками?
Ну вы скажите: руками! Делать мне больше нечего. ;-) Вимовская это подстветка. Если хотите подробнее — давайте в тему по Виму, а то здесь это совсем офтопик.
 
Weinaum
> по фтп
Гугль дает доступ к документам по FTP? O_o Где?
 
> получаю только сгенерированные html файлы со страницы google
Да, код вебдванольного гугловского интерфейса не слишком пригоден для парсинга.
 
> прописал в конфиге свой логин- пароль, при запуске выходит браузер с просьбой разрешить
В конфиге можно было вручную ничего не писать. Запускаете — вводите логин — через веб-интерфейс получаете ключ — вводите ключ — все, можно юзать. Пример того, как можно загрузить все документы, я написал выше.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 17:54 01-10-2011
Weinaum



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

Цитата:
по фтп
Гугль дает доступ к документам по FTP? O_o Где?  

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

Цитата:
В конфиге можно было вручную ничего не писать. Запускаете — вводите логин — через веб-интерфейс получаете ключ — вводите ключ — все, можно юзать. Пример того, как можно загрузить все документы, я написал выше.

 
запускаю: Please specify user:  
ввожу
Please specify dest:  
 
Вот это что он просит? -  уже голову сломал, что ему надо..

Всего записей: 1939 | Зарегистр. 18-06-2006 | Отправлено: 19:51 01-10-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum
> Please specify dest:
> Вот это что он просит?
Destination. ;-) Согласен, совершенно неожиданное поведение. Вместо того, чтоб загрузить в текущую папку, спрашивает куда.
Поэтому надо сразу явно указывать:  

Код:
google docs get --format=pdf "$NAME" .


----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 20:29 01-10-2011 | Исправлено: ASE_DAG, 20:29 01-10-2011
Weinaum



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я тоже так подумал, но при этом, куда бы не говорил загрузить - следующая ошибка:

Код:
Failed to get entries: Server responded with: 403, <errors xmlns='http://schemas.google.com/g/2005'><error><domain>GData</domain><code>ServiceForbiddenException</code><internalReason>403.4 SSL required</internalReason></error></errors>
 

 
ага, оказывается, ему python-gdata нужен не просто больше 2.0, (у меня был 2.0.8), а конкретно последний - щас обновил до 2.0.14 - ну по крайней мере начал качать, дальше посмотрим, как это можно практически гонять.
 
Снкс, ASE_DAG

Всего записей: 1939 | Зарегистр. 18-06-2006 | Отправлено: 20:44 01-10-2011 | Исправлено: Weinaum, 22:21 01-10-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum
> не просто больше 2.0, (у меня был 2.0.8), а конкретно последний
Ну ХЗ. :-/
 
$ aptitude show googlecl
Package: googlecl                        
State: installed
Automatically installed: no
Version: 0.9.13-1
Priority: optional
Section: python
Maintainer: Obey Arthur Liu <arthur@milliways.fr>
Uncompressed Size: 475 k
Depends: python (>= 2.5), python-support (>= 0.90.0), python-gdata (>= 1.2.4)
Description: command-line tool for access to (some) Google services  
<поскипано>

 
Хотя стоит у меня, да, 2.0.14-2.
 
> Снкс, ASE_DAG
Олвйс велкм.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 21:31 01-10-2011
anynamer



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

Всего записей: 1703 | Зарегистр. 17-05-2010 | Отправлено: 21:55 01-10-2011 | Исправлено: anynamer, 21:55 01-10-2011
olemel

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите выкачать Wget`том эту галерею
 
http://chickupload.com/gallery/72711/07VBO8W5
 
нужна не эта страница, ни маленькие картиночки а нужны фотографии в полном размере фотографии
 
Такой код непрошел
 
wget -cN --user-agent="Opera/9.80 (Windows NT 6.0; U)" http://chickupload.com/picture/1465824/full/NewImages/WebsiteLogos/01.png
 
и такой
 
wget http://chickupload.com/picture/1465824/full/NewImages/WebsiteLogos/01.png
 
Выкачивается всегда одно и тоже изображение - логотип этой галереи. Помогите пожалуйста.

Всего записей: 18 | Зарегистр. 17-10-2009 | Отправлено: 10:38 03-10-2011
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день, olemel
Там меняют и проверяют cookies для каждой картинки.
Попробуйте следующий батник (нужен sed или ssed):

Код:
 
wget http://chickupload.com/gallery/72711/07VBO8W5 -O temp.url
sed -n -e "s|.*\(/showpicture[^[>]*\).>.*|chickupload.com\1|pg" temp.url >temp.lst
for /f %%i in (temp.lst) do (
wget --keep-session-cookies --save-cookies temp.cook %%i -O temp.1
sed -n -e "s|.*\(/picture/[^<]*\). id.*|http://chickupload.com\1|p" temp.1 >temp.2
wget -c --load-cookies temp.cook -i temp.2 )
del temp.*
 

Сделано коряво, но, вроде, работает.
 
Добавлено: Чуть переработано и улучшено.

Код:
 
wget http://chickupload.com/gallery/72711/07VBO8W5 -O - | sed -n -e "s|.*\(/showpicture[^\x22]*\).*|chickupload.com\1|pg" >temp.lst  
for /f %%i in (temp.lst) do (  
wget --keep-session-cookies --save-cookies temp.cook %%i -O - | sed -n -e "s|.*\(/picture/[^\x22]*full[^\x22]*\).*|http://chickupload.com\1|p" | wget -c --load-cookies temp.cook -i - )
 

Всего записей: 1693 | Зарегистр. 07-08-2002 | Отправлено: 19:18 05-10-2011 | Исправлено: Alex_Piggy, 20:46 05-10-2011
olemel

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy очень, очень большое спасибо, скрипты работают на ура, немного повозился с sed а так все устраивает

Всего записей: 18 | Зарегистр. 17-10-2009 | Отправлено: 00:25 06-10-2011 | Исправлено: olemel, 00:26 06-10-2011
mouser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как скачать файлы только изминеные и новые ???  
 
Добавлено:

Цитата:
как скачать файлы только изминеные и новые ???  

с этим разобрался, а вот файлы .listing не удаляются (((  
 
в настройках пример есть только того как чтоб они не удалялись, а вот принудительно нету ((

Всего записей: 798 | Зарегистр. 10-11-2006 | Отправлено: 10:16 11-10-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 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

Компьютерный форум 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