Бърз и лесен начин да се направи копие на Web или FTP сайт (wget)

Понякога е удобно да свалим даден сайт за да можем да го преглеждаме по-късно време или просто за да има архив в случай на нужда. Един много лесен начин е чрез използване на командата wget.
С нейна помощ могат да се свалят файлове, да се обхождат всички директории (рекурсивно) и да се сваля цялото съдържание. Wget има версии за всички популярни операционни системи (Windows/Linux/MacOS) и инсталирането/компилирането/ е лесно.
Типично, командата за сваляне на огледално копие се използва така:

wget -m http://www.example.com
wget -m ftp://ftp.example.com

където -m (или –mirror) е опцията указваща да се прави огледално копие. Може да се добави и опция -p (–page-requisites) която осигурява свалянето на всички “вградени” картинки в кода.

Недостатък на този метод може да се посочи, че линковете в самите страници остават непроменени сочейки url адреса на сайта. Към тази опция може да се добави и -k (–convert-links) която коригира линковете в страниците така, че да сочат към локалното копие което се сваля. По този начин сайта остава “работещ” тъй като връзките сочат към сваленото копие.

Повечето сайтове съдържат файл наречен Robots.txt който указва кой части от сайта могат да бъдат проучвани или не от търсещи машини и скриптове. За да се игнорира неговоро съдържание wget може да добави опцията ‐‐execute robots=off

Богатите възможности на wget предоставят дори възможност да имитира клиент добавяйки опцията ‐‐user-agent=… ,  например:

--user-agent="Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

имитирайки, че това е Google bot или по следния начин:

--refer=http://google.com --user-agent="Mozilla/5.0 Firefox/4.0.1"

Ако желаете да свалите само определени файлове (например .pdf и .doc) тогава командата може да се укаже с опциията –accept (или -А):

wget -m --accept=pdf,doc http://example.com/

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

wget --http-user=име --http-password=парола http://www.example.com/downloads/file.zip

Удобство е възможността да сваляте определени файлове който се различават само по номера в името като например картинки:

wget http://example.com/images/{1..20}.jpg

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

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

Линкове за сваляне и допълнителна информация:

https://eternallybored.org/misc/wget/

http://sourceforge.net/projects/gnuwin32/files/wget/1.11.4-1/

http://www.labnol.org/software/wget-command-examples/28750/

https://www.gnu.org/software/wget/manual/html_node/

http://daniel.haxx.se/docs/curl-vs-wget.html

Advertisements