تتيح لك الأداة المساعدة wget تنزيل صفحات الويب والملفات والصور من الويب باستخدام سطر أوامر Linux.
يمكنك استخدام أمر wget منفرد بمفرده للتنزيل من موقع أو إعداد ملف إدخال لتنزيل ملفات متعددة عبر مواقع متعددة.
وفقا للصفحة اليدوية يمكن استخدام wget حتى عندما يسجل المستخدم الخروج من النظام. للقيام بذلك ، يمكنك استخدام الأمر nohup.
ستقوم الأداة المساعدة wget بإعادة محاولة تنزيل حتى عندما ينقطع الاتصال ، وتستأنف من حيث توقفت إذا أمكن عندما يعود الاتصال.
يمكنك تنزيل مواقع ويب كاملة باستخدام wget وتحويل الروابط للإشارة إلى المصادر المحلية بحيث يمكنك عرض موقع ويب دون اتصال.
ميزات wget هي كما يلي:
- قم بتنزيل الملفات باستخدام HTTP و HTTPS و FTP
- استئناف التنزيلات
- تحويل الروابط المطلقة في صفحات الويب التي تم تنزيلها إلى عناوين URL النسبية حتى يمكن عرض مواقع الويب دون اتصال
- يدعم بروكسيات HTTP وملفات تعريف الارتباط
- يدعم اتصالات HTTP المستمرة
- يمكن أن تعمل في الخلفية حتى عندما لا تسجل الدخول
- يعمل على لينكس وويندوز
كيفية تنزيل الموقع باستخدام 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 switches.
wget -m www.everydaylinuxuser.com
لذلك إذا كان لديك موقع ويب خاص بك ، يمكنك عمل نسخة احتياطية كاملة باستخدام هذا الأمر البسيط.
تشغيل wget كقيادة خلفية
يمكنك الحصول على wget لتشغيله كقاعدة خلفية مما يجعلك قادراً على مواصلة عملك في نافذة المحطة الطرفية أثناء تنزيل الملفات.
ما عليك سوى استخدام الأمر التالي:
wget -b www.everydaylinuxuser.com
يمكنك بالطبع الجمع بين التبديل. لتشغيل الأمر wget في الخلفية أثناء إجراء نسخ متطابق للموقع ، يمكنك استخدام الأمر التالي:
wget -b -m www.everydaylinuxuser.com
يمكنك تبسيط ذلك على النحو التالي:
wget -bm www.everydaylinuxuser.com
تسجيل
إذا كنت تقوم بتشغيل الأمر wget في الخلفية ، فلن ترى أيًا من الرسائل العادية التي يرسلها إلى الشاشة.
يمكنك الحصول على جميع تلك الرسائل المرسلة إلى ملف سجل حتى تتمكن من التحقق من التقدم في أي وقت باستخدام الأمر tail .
لإخراج المعلومات من أمر wget إلى ملف السجل ، استخدم الأمر التالي:
wget -o / path / to / mylogfile www.everydaylinuxuser.com
عكس ذلك ، بالطبع ، هو عدم طلب أي تسجيل على الإطلاق وعدم وجود إخراج للشاشة. لإهمال كل المخرجات ، استخدم الأمر التالي:
wget -q www.everydaylinuxuser.com
تحميل من مواقع متعددة
يمكنك إعداد ملف إدخال للتحميل من العديد من المواقع المختلفة.
فتح ملف باستخدام محرر المفضلة لديك أو حتى الأمر القط وابدأ ببساطة قائمة المواقع أو الروابط لتحميل من على كل سطر من الملف.
احفظ الملف ثم قم بتشغيل الأمر wget التالي:
wget -i / path / to / inputfile
وبصرف النظر عن النسخ الاحتياطي لموقع الويب الخاص بك أو ربما العثور على شيء لتحميل لقراءة على القطار ، فمن غير المرجح أنك سوف تحتاج إلى تحميل موقع كامل.
من المرجح أن تقوم بتنزيل عنوان URL مفرد يحتوي على صور أو ربما تنزيل ملفات مثل ملفات zip أو ملفات ISO أو ملفات صور.
مع وضع ذلك في الاعتبار ، لا ترغب في كتابة ما يلي في ملف الإدخال حيث إنه مضيعة للوقت:
- http://www.myfileserver.com/file1.zip
- http://www.myfileserver.com/file2.zip
- http://www.myfileserver.com/file3.zip
إذا كنت تعرف أن عنوان URL الأساسي سيكون دائمًا كما هو ، فيمكنك تحديد ما يلي في ملف الإدخال:
- file1.zip
- file2.zip
- file3.zip
يمكنك بعد ذلك توفير عنوان URL الأساسي كجزء من أمر wget كما يلي:
wget -B http://www.myfileserver.com -i / path / to / inputfile
خيارات إعادة المحاولة
إذا قمت بإعداد طابور من الملفات لتنزيلها في ملف إدخال وتترك الكمبيوتر يعمل طوال الليل لتنزيل الملفات ، فسيكون الأمر مزعجًا إلى حد ما عندما تنزل في الصباح لتجد أنها عالقة في الملف الأول و تم إعادة المحاولة طوال الليل.
يمكنك تحديد عدد مرات إعادة المحاولة باستخدام المفتاح التالي:
wget -t 10 -i / path / to / inputfile
قد ترغب في استخدام الأمر السابق بالاقتران مع رمز التبديل -T الذي يسمح لك بتحديد المهلة في ثوانٍ كما يلي:
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 / path / to / inputfile
لاحظ أن الأمر -q لن يعمل مع ملف واحد.
لذلك إذا قمت بتنزيل ملف بحجم 2 غيغابايت ، فإن استخدام q-1000m لن يوقف تنزيل الملف.
يتم تطبيق الحصة فقط عند التنزيل المتكرر من موقع أو عند استخدام ملف الإدخال.
من خلال الحصول على الأمن
تتطلب بعض المواقع منك تسجيل الدخول لتتمكن من الوصول إلى المحتوى الذي ترغب في تنزيله.
يمكنك استخدام المفاتيح التالية لتحديد اسم المستخدم وكلمة المرور.
wget --user = yourusername --password = yourpassword
ملاحظة على نظام متعدد المستخدمين إذا قام شخص ما بتشغيل الأمر ps ، فسيكون بإمكانه رؤية اسم المستخدم وكلمة المرور الخاصين بك.
خيارات التنزيل الأخرى
بشكل افتراضي ، يقوم المحول -r بشكل متكرر بتنزيل المحتوى وسيقوم بإنشاء الدلائل أثناء انتقالها.
يمكنك الحصول على جميع الملفات لتنزيلها على مجلد واحد باستخدام المفتاح التالي:
wget -nd -r
عكس هذا هو فرض إنشاء الدلائل التي يمكن تحقيقها باستخدام الأمر التالي:
wget -x -r
كيف لتحميل بعض أنواع الملفات
إذا كنت ترغب في التنزيل بشكل متكرر من موقع ولكنك تريد فقط تنزيل نوع ملف معين مثل mp3 أو صورة مثل png ، يمكنك استخدام بناء الجملة التالي:
wget -A "* .mp3" -r
عكس هذا هو تجاهل بعض الملفات. ربما لا تريد تنزيل الملفات التنفيذية. في هذه الحالة ، سوف تستخدم بناء الجملة التالي:
wget -R "* .exe" -r
Cliget
هناك إضافة فيرفكس تسمى cliget. يمكنك إضافة هذا إلى Firefox بالطريقة التالية.
تفضل بزيارة https://addons.mozilla.org/en-US/firefox/addon/cliget/ وانقر على زر "إضافة إلى فايرفوكس".
انقر فوق زر التثبيت عندما يظهر. سوف تضطر إلى إعادة تشغيل فايرفوكس.
لاستخدام cliget قم بزيارة صفحة أو ملف ترغب في تنزيله وانقر بزر الماوس الأيمن. ستظهر قائمة السياقات باسم cliget وستكون هناك خيارات "للنسخ إلى wget" و "نسخ إلى curl".
انقر فوق الخيار "نسخ إلى wget" وافتح نافذة طرفية ثم انقر بزر الماوس الأيمن والصقها. سيتم لصق الأمر wget المناسب في النافذة.
بشكل أساسي ، هذا يوفر عليك كتابة الأمر بنفسك.
ملخص
الأمر wget كعدد ضخم من الخيارات والمفاتيح.
ومن الجدير إذن قراءة الصفحة اليدوية لـ wget بكتابة ما يلي في نافذة طرفية:
رجل wget