Wget

پیشینه

wget از برنامه جلوتری به نام Geturl توسط نویسنده یکسان نوشته شد. توسعه‌ای که در ۱۹۹۵ آغاز شد. نام آن زمانی به Wget تغییر یافت که نویسنده متوجه شد یک برنامه جلوتر در Amiga به نام GetURL، نوشته James Burton در AREXX وجود دارد.
Wget یک شکاف در نرم‌افزار دانلود اینترنتی را در میانه دهه ۱۹۹۰ پر کرد. هیچ برنامهٔ قابل‌اعتمادی برای دریافت فایل از HTTP و FTP نبود. برنامه‌های موجود یا فقط از FTP پشتیبانی می‌کردند (مانند NCFTP و dl) یا به زبان پرل نوشته شده‌بودند، که هنوز همه‌جا فراهم نبود. درحالی که Wget از ویژگی‌های برخی برنامه‌های موجود الهام گرفته‌بود، پشتیبانی از HTTP و FTP و امکان ساخت آن توسط کاربر با تنها ابزارهای توسعه استاندارد بر روی هر نوع سیستم یونیکسی را هدف گرفته‌بود.
در آن زمان بسیاری از کاربران یونیکسی، از قرارگیری پشت اتصالات اینترنت شدیداً کُند دانشگاه و دیال‌آپ در تکاپو بودند، و نیاز به یک ابزار دانلود که بتواند با خطاهای تغییرات شبکه‌ای بدون نیاز به همکاری دستی انسان کنار بیاید افزایش یافته‌بود.

هوشمندی

Wget عملکرد هوشمندانه‌ای در شبکه‌هایی که سرعت پایینی دارند یا ناپایدارند دارد. اگر به دلیل مشکل شبکه، دریافت به‌طور کامل به اتمام نرسد، Wget به‌طور اتوماتیک دریافت فایل را از جایی که ارتباط قطع شده بود ادامه می‌دهد و تا جایی که فایل به‌طور کامل دریافت شود این عمل را تکرار می‌کند. Wget از اولین کلاینتهایی است که از هدر Range در پروتکل HTTP استفاده می‌کند.

دانلود بازگشتی

Wget می‌تواند مانند یک خزندهٔ وب عمل کند و با استخراج منابعی که پیوندهای آنان در صفحات اچ‌تی‌ام‌ال موجود است آنان را به صورت متوالی دانلود کند و اینکار را تا زمانی که تمام صفحات دانلود شوند یا به عمق نفوذی که کاربر تعیین کرده‌است برسد انجام می‌دهد. صفحات دانلود شده در دایرکتوریهایی همانند سرور راه دور ذخیره می‌شوند. این نوع دانلود بازگشتی این امکان را می‌دهد که بتوان توسط پروتکل HTTP یک وب‌گاه را Mirror کرد. همچنین Wget این قابلیت را دارد که پیوندهای موجود در صفحات HTML را برای مرور آفلاین آن‌ها تنظیم کند. هنگامی که از این روش برای Mirror کردن وب‌گاه‌ها استفاده می‌شود، Wget از استاندارد استاندارد ممانعت رباتها پیروی می‌کند (مگر اینکه خود شما صراحتاً این حالت را غیرفعال کنید e robots=off-)
دانلود بازگشتی برای پروتکل FTP نیز به خوبی کار می‌کند. به‌طوری‌که Wget از فرمان LIST برای پیدا کردن فایل‌هایی که باید دانلود شوند استفاده می‌کند و اینکار را برای تمام دایرکتوری‌های موجود در زیر دایرکتوری اصلی که در URL تعیین شده‌است انجام می‌دهد.
وقتی که از امکان دانلود بازگشتی استفاده شود، Wget می‌تواند با بازرسی اختلاف زمانی فایل‌های محلی و راه دور، فقط فایل‌هایی را از سرور دریافت کند که جدیدتر از نسخهٔ محلی هستند. اما این قابلیت Wget مستعد اشتباه است و قابل مقایسه با نرم‌افزارهایی که اختصاصاً برای پشتیبان‌گیری ساخته شده‌اند نیست. (مانند rsync)

عملکرد بدون تعامل

Wget می‌تواند بدون تعامل داشتن با کاربر یا چاپ وضعیت خود در یک دستگاه خروجی به کار خود ادامه دهد و می‌تواند وضعیت عملکرد خود را در فایل جداگانه‌ای ذخیره نماید. این قابلیت به کاربر این امکان را می‌دهد که Wget را اجرا کند و سپس از سیستم خارج (Logout) شود. در مقابل اکثر مرورگرهای گرافیکی یا متنی صفحات وب که نیاز دارند کاربر وارد سیستم بماند و در صورت بروز خطا در دریافت فایل‌ها به صورت دستی آن‌ها را از اول بکار بیندازد.

قابل حمل

Wget بزبان قابل حمل C نوشته شده‌است و نیاز آن به کتابخانه‌های پیش‌نیاز به حداقل رسانده شده‌است. مانند یک برنامهٔ تحت یونیکس از خط فرمان فراخوانده می‌شود و به تعدادی از محیط‌های شبه‌یونیکس پورت شده‌است، از جمله مایکروسافت ویندوز بواسطهٔ Cygwin و Mac OS X.

GWget

GWget یک واسط گرافیکی کاربر (GUI) برای Wget و بخشی از پروژه گنوم است، GWget تمام ویژگی‌های اصلی Wget به علاوهٔ دانلود موازی را پشتیبانی می‌کند.

استفاده معمولی

بطور ساده GNU Wget توسط واسط خط فرمان و با دادن یک URL به آن قابل استفاده است:
# Download the title page of example.com to a file# named "index.html".
wget http://www.example.com/
# Download Wget's source code from the GNU ftp site.
wget ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz
همچنین می‌توان Wget را برای دانلود فرمتهای خاصی از ساختار دایرکتوری یک وبسایت استفاده کرد :
# Download *.gif from a website# (globbing, like "wget http://www.server.com/dir/*.gif", only works with ftp)
wget -e robots=off -r -l1 --no-parent -A.gif http://www.server.com/dir/
دانلود صفحهٔ اول یک وبسایت به همراه تمام نیازمندی‌های آن مانند تصاویر و فایل‌های Style Sheet و تبدیل لینک‌های آن برای مشاهدهٔ آفلاین :
# Download the title page of example.com, along with# the images and style sheets needed to display the page, and convert the# URLs inside it to refer to locally available content.
wget -p -k http://www.example.com/
دانلود کامل یک وبسایت :
# Download the entire contents of example.com
wget -r -l 0 http://www.example.com/
دانلود در یک نشانی مشخص :
# Download foo.txt and save it at /home/User/folder/foo2.txt
wget -O /home/User/folder/foo2.txt http://www.example.com/foo.txt