Как да използвате командата wget Linux за изтегляне на уеб страници и файлове

Помощната програма wget ви позволява да изтегляте уеб страници, файлове и изображения от мрежата, като използвате командния ред на Linux.

Можете да използвате самостоятелно командата wget самостоятелно, за да изтеглите от даден сайт или да настроите входен файл, за да изтеглите множество файлове на различни сайтове.

Според ръководството страницата wget може да се използва дори когато потребителят е излязъл от системата. За да направите това, ще използвате командата nohup.

Помощната програма wget ще повтори изтеглянето, дори когато връзката падне, възобновявайки се от мястото, където то е престанало, ако е възможно, когато връзката се върне.

Можете да изтегляте цели уеб сайтове чрез wget и да конвертирате връзките, за да насочите към местни източници, така че да можете да преглеждате уебсайта офлайн.

Характеристиките на wget са следните:

Как да изтеглите уеб сайт, използвайки

За това ръководство ще ви покажа как да изтеглите моя личен блог.

wget www.everydaylinuxuser.com

Заслужава си да създадете собствена папка на вашата машина, като използвате командата mkdir и след това се премествате в папката с помощта на командата cd .

Например:

mkdir everydaylinuxuser
cd everydaylinuxuser
wget www.everydaylinuxuser.com

Резултатът е един файл index.html. Сам по себе си, този файл е сравнително безполезен, тъй като съдържанието все още е изтеглено от Google, а изображенията и стиловите листове все още се съхраняват в Google.

За да изтеглите целия сайт и всички страници, можете да използвате следната команда:

wget -r www.everydaylinuxuser.com

Това изтегля страниците рекурсивно до максимум 5 нива дълбоко.

5 нива дълбоко може да не е достатъчно, за да получите всичко от сайта. Можете да използвате превключвателя -l, за да зададете броя на нивата, на които искате да отидете, както следва:

wget -r -l10 www.everydaylinuxuser.com

Ако искате безкрайно рекурсиране, можете да използвате следното:

wget -r -l inf www.everydaylinuxuser.com

Можете също да замените inf с 0, което означава същото.

Все още има още един проблем. Може да получите всички страници на място, но всички връзки в страниците все още сочат към първоначалното си място. Поради това не е възможно да се кликва локално между връзките на страниците.

Можете да преодолеете този проблем, като използвате превключвателя -k, който преобразува всички връзки на страниците, за да сочи към техния еквивалентно изтеглени еквиваленти, както следва:

wget -r -k www.everydaylinuxuser.com

Ако искате да получите пълно огледало на уебсайт, можете просто да използвате следния ключ, който отнема необходимостта от използване на превключвателите -r -k и -l.

wget -m www.everydaylinuxuser.com

Следователно, ако имате свой собствен уебсайт, можете да направите пълен архив, като използвате тази проста команда.

Стартирайте wget като Background Command

Можете да получите wget, за да стартирате като фона на команда, което ви позволява да продължите с работата си в терминалния прозорец докато изтегляте файловете.

Просто използвайте следната команда:

wget -b www.everydaylinuxuser.com

Разбира се, можете да комбинирате превключватели. За да стартирате командата wget във фонов режим, докато огледате сайта, ще използвате следната команда:

wget -b -m www.everydaylinuxuser.com

Можете да я опростите по-нататък, както следва:

wget -bm www.everydaylinuxuser.com

Влизане

Ако изпълнявате командата wget във фонов режим, няма да видите нито едно от нормалните съобщения, които изпраща на екрана.

Можете да получите всички тези съобщения, изпратени в лог файл, така че да можете да проверите напредъка по всяко време, като използвате командата опашка .

За да изведете информация от командата wget в лог файл използвайте следната команда:

wget -o / път / към / mylogfile www.everydaylinuxuser.com

Обратното, разбира се, не изисква изобщо да се регистрира и няма изход на екрана. За да пропуснете целия изход използвайте следната команда:

wget -q www.everydaylinuxuser.com

Изтегляне от няколко сайта

Можете да настроите входящ файл, който да се изтегля от много различни сайтове.

Отворете файл с любимия си редактор или дори котката котка и просто започнете да извеждате списък на сайтовете или линковете за изтегляне от всеки ред на файла.

Запишете файла и след това изпълнете следната команда wget:

wget -i / path / to / inputfile

Освен да създадете резервно копие на собствения си уебсайт или да откриете нещо, което да изтеглите, за да прочетете във влака, е малко вероятно да искате да изтеглите цял уебсайт.

По-вероятно е да изтеглите един URL адрес с изображения или да изтеглите файлове като zip файлове, ISO файлове или графични файлове.

С оглед на това не искате да въвеждате следното във входния файл, тъй като отнема много време:

Ако знаете, че основният URL адрес винаги ще бъде същият, можете да зададете следното във входния файл:

След това можете да предоставите базовия URL адрес като част от командата wget, както следва:

wget -B http://www.myfileserver.com -i / path / to / inputfile

Опции за повторен опит

Ако сте настроили опашка от файлове, които да изтеглите в рамките на входен файл и оставите компютъра си да работи цяла нощ, за да изтеглите файловете, ще бъдете доста раздразнени, когато слезете сутринта, за да откриете, че е залепнал в първия файл и се е опитвал цяла нощ.

Можете да определите броя на опита, като използвате следния ключ:

wget -t 10 -i / path / to / inputfile

Може да поискате да използвате горната команда заедно с превключвателя -Т, който ви позволява да зададете време за изчакване в секунди, както следва:

wget -t 10 -T 10 -i / path / to / inputfile

Горната команда ще опита отново 10 пъти и ще се опита да се свърже за 10 секунди за всяка връзка във файла.

Също така е доста досадно, когато частично сте изтеглили 75% от файла с 4 гигабайта на бавна широколентова връзка само заради отпадането на вашата връзка.

Можете да използвате wget, за да опитате отново от мястото, където е спряло да се изтегля, като използвате следната команда:

wget -c www.myfileserver.com/file1.zip

Ако ударите сървър, хостът може да не харесва твърде много и може да блокира или просто да убие вашите заявки.

Можете да зададете период на изчакване, който определя колко дълго да чакате между всяко извличане, както следва:

wget -w 60 -i / path / to / inputfile

Горната команда ще изчака 60 секунди между всяко изтегляне. Това е полезно, ако изтегляте много файлове от един източник.

Някои уеб хостове може да забележи честотата и въпреки това ще ви блокират. Можете да направите периода на изчакване случайно, за да изглежда, че не използвате програма, както следва:

wget -random-wait -i / path / to / inputfile

Защита на ограниченията за изтегляне

Много доставчици на интернет услуги все още прилагат лимити за изтегляне за широколентова употреба, особено ако живеете извън града.

Може да поискате да добавите квота, така че да не удряте ограничението за изтегляне. Можете да направите това по следния начин:

wget -q 100m -i / път / към / входния файл

Имайте предвид, че командата -q няма да работи с един файл.

Така че, ако изтеглите файл с размер 2 гигабайта, използвайки -q 1000 м няма да спре изтеглянето на файла.

Квотата се прилага само при рекурсивно изтегляне от даден сайт или при използване на входен файл.

Осигуряване на сигурността

Някои сайтове изискват да влезете, за да имате достъп до съдържанието, което искате да изтеглите.

Можете да използвате следните превключватели, за да посочите потребителското име и паролата.

wget - user = име на потребител - парола = паролата ви

Забележка на мултифункционалната система, ако някой изпълни командата ps, ще може да види вашето потребителско име и парола.

Други опции за изтегляне

По подразбиране превключвателят -r ще изтегли рекурсивно съдържанието и ще създаде директории, докато върви.

Можете да изтеглите всички файлове за изтегляне в една папка, като използвате следния ключ:

wget -nd -r

Обратното на това е да се наложи създаването на директории, които могат да бъдат постигнати чрез следната команда:

wget -x -r

Как да изтеглите определени типове файлове

Ако искате да изтеглите рекурсивно от даден сайт, но искате само да изтеглите определен тип файл, като например mp3 или изображение като png, можете да използвате следния синтаксис:

wget -A "* .mp3" -r

Обратното на това е да се игнорират някои файлове. Може би не искате да изтегляте изпълними файлове. В този случай бихте използвали следния синтаксис:

wget-R "* .exe" -r

Cliget

Има добавка за Firefox, наречена cliget. Можете да добавите това към Firefox по следния начин.

Посетете https://addons.mozilla.org/en-US/firefox/addon/cliget/ и кликнете върху бутона "добавяне към Firefox".

Кликнете върху бутона за инсталиране, когато се появи. Ще трябва да рестартирате Firefox.

За да използвате cliget, посетете страница или файл, който искате да изтеглите, и кликнете с десен бутон. Ще се покаже контекстно меню, наречено cliget, и ще има опции за "copy to wget" и "copy to curl".

Кликнете върху опцията "copy to wget" и отворете терминален прозорец, след което щракнете с десния бутон на мишката и поставете. Подходящата команда на wget ще бъде поставена в прозореца.

По същество това ви спестява да напишете сами командата.

резюме

Командата wget представлява огромен брой опции и ключове.

Затова си струва да прочетете ръководството за wget, като въведете следното в терминален прозорец:

човек wget