سحب وتنزيل موقع باستخدام الأمر wget


Wget هي أداة – أمر – متوفرة على أنظمة GNU/Linux لتنزيل الملفات من على الوب تدعم بروتوكولات HTTP، HTTPS، و FTP. كما أن بإمكانها إيجاد وتنزيل ملفات عبر وسيط (بروكسي) HTTP .
من الميزات المهمة التي تُوفرها هذه الأداة:
  • استكمال التنزيل إذا كان الخادم يدعم ذلك.
  • مصممة لتتكيف مع الاتصالات الضعيفة وغير الثابتة، ففي حالة فشل التنزيل بسبب مشكلة في الاتصال، فإنها تستمر في إعادة المحاولة حتى اكتمال التنزيل.
  • تتبع روابط صفحات HTML ، XHTML و CSS لإنشاء نسخة محلية يمكن تصفحها دون الحاجة للاتصال بالشبكة. (أو ما يعرف بالتنزيل التكراري – Recursive Download – حيث لا يقتصر الأمر على تنزيل ملف صفحة ويب فقط بل كل الملفات التي تشير إليها هذه الصفحة، مثل الصور والسكريبتات، من أجل عرضها كما لو كنتَ تتصفح موقع ويب).

استعمال الأداة

ينفذ الأمر wget بالطريقة التالية
wget [option] … [URL]…
حيث
  • option تمثل خيار أو خيارات الأمر.
  • URL رابط أو روابط التحمبل (يمكن أيضا كما سنرى استبدال رابط التنزيل بملف يحوي مجموعة من الروابط لتنزيل الملفات التي تشير إليها تلك الراوبط).
  • عادة الأقواس المعكوفة مستخدمة بكثرة خصوصا في مجتمع لينكس للإشارة إلى أنه ليس ضروريا إعطاء كل الخيارات،
سنتطرق في الفقرات التالية لأهم خيار ات الأمر wget إذ ليس بالإمكان عرضها كلها. لمعرفة المزيد من الخيارات يمكن ذلك عن طريق مطالعة دليل لينكس عبر إدخال الأمر man wget في الطرفية أو عن طريق مطالعة هذه الصفحة (اللغة الانجليزية هي المستخدمة في كلتا الحالتين).

أهم خيارات الأمر wget

تتوفر الخيارات بنسختين (كمعظم الخيارات في أوامر لينكس)، طويلة وضعتُها بين قوسين (الخيارات الطويلة تكون ميبوقة بشرطتين “–”) و قصيرة. استخدام أي من النسختين ينتج عنه نفس المفعول.
الخيار r- ( أو recursive–) : تفعيل تتبع الروابط.
عند استخدام هذا الخيار فإن الأمر يتتبع الروابط حتى المستوى المنصوص عليه في الإعدادات الافتراضية (وهو المستوى الخامس) ابتداءً من رابط الصفحة المعطى في الأمر.
لشرح ما أعنيه بالمستوى، دعوني آخذ المثال التالي:
لو افترضنا أن هذه المدونة تحوي صفحة باسم “أوامر لينكس” يمكن الوصول إليها عبر صفحة باسم “لينكس” يوجد لها رابط على الصفحة “الرئيسية” ، فإن الصفحة “أوامر لينكس” توجد في المستوى الثالث بالنسبة للصفحة الرئيسية “الرئيسية (المستو الأول) >> لينكس (الثاني) >> أوامر لينكس (الثالث)” . يمكن استخدام الخيار l- (أو level– ) لتحديد المستوى الذي يصل إليه التنزيل.
مثال: الأمر التالي يقوم بتنزيل جميع الملفات الموجودة في هذه المدونة حتى المستوى الثالث (الخيار l3- أو level=3– )
wget -r -l3 zeine77.wordpress.com
الخيار k- ( أو convert-links– ) : التحويل إلى روابط محلية
من الخيارات المهمة جدا، إذ يقوم بتحويل الروابط المجودة على صفحة وب لروابط محلية تمكن من تصفح الموقع المُحمل مِن على الجهاز لديك دون الحاجة للاتصال بالشبكة. يستخدم الخيار بالشكل التالي
حيث http://www.exemple.com هو عنوان الصفحة المُراد تنزيلها. طبعا يمكننا إضافته للأمر السابق لتنزيل ملفات موقع ما وجعلها قابلة للتصفح محليا.
wget -k -r -l3 zeine77.wordpress.com
الخيار p- ( أو page-requisites–) : تنزيل متعلقات صفحة
يوجه الأمر wget لتنزيل كل الملفات التي تحتاجها صفحة الوب ليتم عرضها دون الحاجة للاتصال بالشبكة.
لنأخذ مثال التدوينة السابقة، حيث توجد صورة توضح إصدارات جافا وكيفية تنزيلها. عند تطبيق الأمر wget على عنوان التدوينة المذكورة دون استخدام الخيار p- فلن يتم تنزيل الصورة مما يعني أنك لن تستطيع رؤيتها على النسخة المحلية. استخدام الخيار p- يمكن من التغلب على هذا الأمر. في حالة تفعيل تتبع الروابط (الخيار r- ) دون استخدام p- فإن الملفات – صور وغيرها – التي تحتاجها صفحات المستوى الأخير (المستوى الثالث في المثال الأول) لن يتم تنزيلها.
الخيار np- ( أو no-parent– ) : قصر التنزيل على المجلدات الفرعية
يستخدم مع الخيار r- لمنع تنزيل صفحات من مستوى أعلى من مستوى الصفحة المعطاة في العنوان. مثلا بإمكانك استخدام هذا الخيار لتنزيل قسم من موقع دون الاضطرار لتنزيل الموقع بكامله.

تنزيل موقع بالكامل باستخدام wget

بدمج الخيارات أعلاه يمكننا تنزيل موقع وتصفحه محليا من على الجهاز كما لو كنت تتصفحه عبر الشبكة عن طريق الأمر التالي:
wget -r -k -np -p http://www.site.com
r- لتتبع الروابط (التنزيل التكراري – Recursive Download)
k- لتحويل الروابط لروابط محلية
np- للتأكد من تنزيل الصفحات التي نريدها فقط وليس صفحات مستوى أعلى (في حالة موقع به العديد من الأقسام أو المواقع التي تستخدم اسمَ نطاق مشترك كهذه المدونة)
p- لتنزيل الملفات التي تحتاجها صفحات المستوى الأخير.
حسب رأيي الخيارات أعلاه هي الأساسية لأمر wget . أدناه سأذكر بشكل سريع بعض الخيارات الأخرى التي قد تكون مفيدة.

خيارات أخرى

الخيار b- ( أو background –) : التشغيل في الخلفية.
تشغيل الأمر في الخلفية، بإمكانك مثلا الدخول على النظام باسم مستخدم “محمد”، تشغيل تنزيل موقع في الخلفية عن طريق هذا الخيار، قفل الجلسة (session) ثم الدخول باسم مستخدم ثان “أحمد” دون انقطاع التنزيل الذي شغله المستخدم الأول “محمد”.
الخيار c- ( أو continue– ) : استكمال التنزيل.
استكمال تنزيل ملف حتى ولو لم تكن استخدمت wget لبدأ التنزيل (بدأتَ التنزيل عن طريق المتصفح مثلا ثم انقطع التنزيل لسبب أو آخر)
الخيار i- (أو input– ) : تنزيل روابط موجودة في ملف .
يستخدم هكذا wget -i file أو wget –input=file فيقوم بقراءة روابط المواقع أو الصفحات المُراد تنزيلها من ملف (file هنا تمثل المسار الذي يوجد عليه الملف، في الملف كل سطر يحوي رابطا واحدا ) ثم تنزيلها واحدا تلو الآخر.