Wget

GNU Wget (یا فقط Wget) برنامه‌ای رایانه‌ای است برای دریافت محتویات از کارسازهای وب و بخشی از پروژه گنو است. نام این نرم‌افزار از World Wide Web و get مشتق شده‌است که به کار اصلی این برنامه اشاره دارد.
این برنامه از دانلود توسط پروتکلهای HTTP، HTTPS و FTP که پروتکل‌های متداولی در شبکه‌های مبتنی بر TCP/IP هستند پشتیبانی می‌کند.
ویژگی‌های این نرم‌افزار دانلود بازگشتی (تودرتو)، تبدیل ابرپیوندها برای مشاهده آفلاین پرونده‌های HTML، پشتیبانی از کارساز پراکسی و خیلی امکانات دیگر است.
Wget با زبان قابل حمل C نوشته شده‌است و براحتی در سیستم‌های شبه یونیکس نصب می‌شود و برای محیط‌های کاری مختلفی همچون مک اواس، مایکروسافت ویندوز پورت شده‌است.
Wget به عنوان پایه برای برنامه‌های گرافیکی‌ای مانند GWget برای میزکار گنوم استفاده می‌شود.
پیشینه
wget از برنامه جلوتری به نام Geturl توسط نویسنده یکسان نوشته شد. توسعه‌ای که در ۱۹۹۵ آغاز شد. نام آن زمانی به Wget تغییر یافت که نویسنده متوجه شد یک برنامه جلوتر در Amiga به نام GetURL، نوشته James Burton در AREXX وجود دارد.
Wget یک شکاف در نرم‌افزار دانلود اینترنتی را در میانه دهه ۱۹۹۰ پر کرد. هیچ برنامه قابل‌اعتمادی برای دریافت فایل از HTTP و FTP نبود. برنامه‌های موجود یا فقط از FTP پشتیبانی می‌کردند (مانند NCFTP و dl) یا به زبان پرل نوشته شده‌بودند، که هنوز همه‌جا فراهم نبود. درحالی که Wget از ویژگی‌های برخی برنامه‌های موجود الهام گرفته‌بود، پشتیبانی از HTTP و FTP و امکان ساخت آن توسط کاربر با تنها ابزارهای توسعه استاندارد بر روی هر نوع سیستم یونیکسی را هدف گرفته‌بود.
در آن زمان بسیاری از کاربران یونیکسی، از قرارگیری پشت اتصالات اینترنت شدیدا کند دانشگاه و دیال‌آپ در تکاپو بودند، و نیاز به یک ابزار دانلود که بتواند با خطاهای تغییرات شبکه‌ای بدون نیاز به همکاری دستی انسان کنار بیاید افزایش یافته‌بود.
ویژگی‌های Wget
هوشمندی
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.
ویژگی‌های دیگر
پشتیبانی از دانلود توسط پروکسی
پشتیبانی از IPv۶
پشتیبانی از امنیت لایه انتقال برای دانلود رمزگذاری شده توسط کتابخانه اپن‌اس‌اس‌ال
سرعت دانلود قابل تنظیم است. این امکان برای زمانی که مایل باشیم Wget تمام پهنای باند را به خود اختصاص ندهد مورد استفاده قرار می‌گیرد.
امکان استفاده از عبارت باقاعده
GWget
GWget ۱٫۰٫۴ در فدورا v12
GWget یک واسط گرافیکی کاربر (GUI) برای Wget و بخشی از پروژه گنوم است، GWget تمام ویژگی‌های اصلی Wget به علاوه دانلود موازی را پشتیبانی می‌کند.
طرز استفاده
wget در حال دانلود یک وبسایت
استفاده معمولی
بطور ساده GNU Wget توسط واسط خط فرمان و با دادن یک URL به آن قابل استفاده است:
Download the title page of example.com to a file
named "index.html".
wget http://www.example.com/
Download Wgets 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