سؤال

أقوم بمراجعة تطبيق الويب الحالي لدينا، والذي يستخدم بشكل مكثف إطارات HTML.أرغب في تنزيل كل HTML الموجود في كل إطار، هل هناك طريقة للقيام بذلك باستخدام wget أو قليلا من البرمجة النصية؟

هل كانت مفيدة؟

المحلول

كإضافة إلى إجابة ستيف:

يمتد إلى أي مضيف —'-H'

يعمل خيار "-H" على تشغيل امتداد المضيف، مما يسمح للتشغيل المتكرر لـ Wget بزيارة أي مضيف تمت الإشارة إليه بواسطة رابط.ما لم يتم تطبيق معايير كافية للحد من التكرار بشكل عميق، فإن هؤلاء المضيفين الأجانب سيرتبطون عادةً بعدد أكبر من المضيفين، وهكذا حتى ينتهي الأمر بـ Wget بامتصاص بيانات أكثر بكثير مما كنت تنوي.

الحد من الامتداد إلى مجالات معينة —'-D'

يتيح لك الخيار "-D" تحديد النطاقات التي سيتم اتباعها، وبالتالي قصر التكرار على المضيفين الذين ينتمون إلى هذه النطاقات فقط.من الواضح أن هذا منطقي فقط بالتزامن مع "-H".

من الأمثلة النموذجية على ذلك تنزيل محتويات "www.server.com"، مع السماح بالتنزيلات من "images.server.com"، وما إلى ذلك:

      wget -rH -Dserver.com http://www.server.com/

يمكنك تحديد أكثر من عنوان عن طريق الفصل بينهم بفاصلة،

على سبيل المثال"-Ddomain1.com،domain2.com".

مأخوذ من: دليل wget

نصائح أخرى

wget --recursive --domains=www.mysite.com http://www.mysite.com

مما يشير إلى أن الزحف العودي يجب أن ينتقل أيضًا إلى الإطارات وإطارات iframe.كن حذرًا في قصر نطاق التكرار على موقع الويب الخاص بك فقط لأنك ربما لا ترغب في الزحف إلى الويب بالكامل.

يحتوي wget على خيار -r لجعله متكررًا، حاول wget -r -l1 (في حالة صعوبة قراءة الخط:هذا الجزء الأخير هو حالة أقل l متبوعًا بالرقم الأول) يخبرها الجزء -l1 بإعادة التكرار إلى أقصى عمق قدره 1.حاول اللعب بهذا الرقم لتتخلص أكثر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top