Wget

**GNU Wget** (یا فقط Wget) برنامه‌ای رایانه‌ای است برای دریافت محتویات از **کارسازهای وب و بخشی از پروژهٔ گنو است. نام این نرم‌افزار از World Wide Web* و [[پروتکل انتقال ابرمتن|get]]* مشتق شده‌است که به کار اصلی این برنامه اشاره دارد.
این برنامه از دانلود توسط پروتکلهای HTTP، HTTPS و FTP که پروتکل‌های متداولی در شبکه‌های مبتنی بر TCP/IP هستند پشتیبانی می‌کند.

ویژگی‌های این نرم‌افزار دانلود بازگشتی (تودرتو)، تبدیل ابرپیوندها برای مشاهدهٔ آفلاین پرونده‌های HTML، پشتیبانی از کارساز پراکسی و خیلی امکانات دیگر است.

Wget با زبان قابل حمل C نوشته شده‌است و به راحتی در سیستم‌های شبه یونیکس نصب می‌شود و برای محیط‌های کاری مختلفی همچون مک اواس، مایکروسافت ویندوز پورت شده‌است.

Wget به عنوان پایه برای برنامه‌های گرافیکی‌ای مانند GWget برای میزکار گنوم استفاده می‌شود.

## پیشینه
wget از برنامه جلوتری به نام گت یو آر ال(Geturl) توسط نویسنده یکسان نوشته شد. توسعه‌ای که در ۱۹۹۵ آغاز شد. نام آن زمانی به Wget تغییر یافت که نویسنده متوجه شد یک برنامه جلوتر در آمیگا(Amiga) به نام GetURL، نوشته جیمز بورتون با زبان برنامه‌نویسی ارکس(AREXX) وجود دارد.

Wget یک شکاف در نرم‌افزار دانلود اینترنتی را در میانه دهه ۱۹۹۰ پر کرد. هیچ برنامهٔ قابل اعتمادی برای دریافت فایل از HTTP و FTP نبود. برنامه‌های موجود یا فقط از FTP پشتیبانی می‌کردند (مانند NCFTP و dl) یا به زبان پرل نوشته شده بودند، که هنوز همه‌جا فراهم نبود. درحالی که Wget از ویژگی‌های برخی برنامه‌های موجود الهام گرفته بود، پشتیبانی از HTTP و FTP و امکان ساخت آن توسط کاربر با تنها ابزارهای توسعه استاندارد بر روی هر نوع سیستم مبتنی بر یونیکس را هدف گرفته بود.

در آن زمان بسیاری از کاربران یونیکس، از قرارگیری پشت اتصالات اینترنت شدیداً کُند دانشگاه و دیال‌آپ در تکاپو بودند، و نیاز به یک ابزار دانلود که بتواند با خطاهای تغییرات شبکه‌ای بدون نیاز به همکاری دستی انسان کنار بیاید افزایش یافته بود.

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

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

دانلود بازگشتی برای پروتکل FTP نیز به خوبی کار می‌کند. به‌طوری که Wget از فرمان `LIST` برای پیدا کردن فایل‌هایی که باید دانلود شوند استفاده می‌کند و اینکار را برای تمام دایرکتوری‌های موجود در زیر دایرکتوری اصلی که در URL تعیین شده‌است انجام می‌دهد.

وقتی که از امکان دانلود بازگشتی استفاده شود، Wget می‌تواند با بازرسی اختلاف زمانی فایل‌های محلی و راه دور، فقط فایل‌هایی را از سرور دریافت کند که جدیدتر از نسخهٔ محلی هستند. اما این قابلیت Wget مستعد اشتباه است و قابل مقایسه با نرم‌افزارهایی که اختصاصاً برای پشتیبان‌گیری ساخته شده‌اند نیست. (مانند rsync)

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

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

### ویژگی‌های دیگر
* پشتیبانی از دانلود توسط پروکسی
* پشتیبانی از پروتکل اینترنت نسخه 6 (IPV6)
* پشتیبانی از امنیت لایه انتقال برای دانلود رمزگذاری شده توسط کتابخانهٔ اپن‌اس‌اس‌ال
* سرعت دانلود قابل تنظیم است. این امکان برای زمانی که مایل باشیم Wget تمام پهنای باند را به خود اختصاص ندهد مورد استفاده قرار می‌گیرد.
* امکان استفاده از عبارت باقاعده (ریجکس)

## GWget
بندانگشتی|چپ|200px|GWget ۱٫۰٫۴ در فدورا v12
GWget یک واسط گرافیکی کاربر(GUI) برای Wget و بخشی از پروژه گنوم است، GWget تمام ویژگی‌های اصلی Wget به علاوهٔ دانلود موازی را پشتیبانی می‌کند.

## طرز استفاده
### استفاده معمولی
به‌طور ساده GNU Wget توسط واسط خط فرمان و با دادن یک URL به آن قابل استفاده است:

```bash
# Download the title page of example.com to a file
# named "index.html".
wget http://www.example.com/
```



```bash
# Download Wget's source code from the GNU ftp site.
wget ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz
```


همچنین می‌توان Wget را برای دانلود فرمت‌های خاصی از ساختار دایرکتوری یک وب‌سایت استفاده کرد:

```bash
# 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 و تبدیل لینک‌های آن برای مشاهدهٔ آفلاین:

```bash
# 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/
```


دانلود کامل یک وبسایت:

```bash
# Download the entire contents of example.com
wget -r -l 0 http://www.example.com/
```


دانلود در یک نشانی مشخص:

```bash
# 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
```


## پانویس

## پیوند به بیرون
* صفحه شخصی پروژه
* [ftp://ftp.gnu.org/pub/gnu/wget دایرکتوری Wget در ftp.gnu.org]
* وبسایت قدیمی Wget
* مستندات Wget
* پرسش‌های متداول

رده:آرشیو وب
رده:حالت متنی
رده:سرویس‌گیرنده‌های اف‌تی‌پی آزاد
رده:مرورگر وب
رده:نرم‌افزارهای آزاد چندسکویی
رده:نرم‌افزارهای آزاد نوشته‌شده با سی
رده:نرم‌افزارهای پروژه گنو
رده:نرم‌افزارهای چندسکویی
رده:نرم‌افزارهای خط فرمانی
رده:نرم‌افزارهای سال ۱۹۹۶ (میلادی)
رده:نرم‌افزارهای قابل حمل
رده:نرم‌افزارهای مدیریت دانلود
رده:وب اسکرپینگ
رده:نرم‌افزارهای ۱۹۹۶ (میلادی)