سؤال

لدي العديد من صفحات الويب على عدة مواقع مختلفة أريد أن أعكسها تمامًا. هذا يعني أنني سأحتاج إلى صور و CSS وما إلى ذلك ، ويجب تحويل الروابط. ستكون هذه الوظيفة مشابهة لاستخدام Firefox لـ "حفظ الصفحة باسم" وتحديد "صفحة الويب ، كاملة". أرغب في تسمية الملفات والأدلة المقابلة كشيء معقول (على سبيل المثال myfavpage1.html ، myfavpage1.dir).

ليس لدي إمكانية الوصول إلى الخوادم ، وليست صفحاتي. هنا رابط عينة واحد: انقر فوق لي!

توضيح أكثر بقليل ... لدي حوالي 100 صفحة أريد أن أعكسها (العديد من الخوادم البطيئة) ، وسأقوم بتشجيع الوظيفة على Solaris 10 وألقي النتائج كل ساعة على جبل Samba للناس. ونعم ، من الواضح أنني جربت WGET مع العديد من الأعلام المختلفة ، لكنني لم أحصل على النتائج التي أبحث عنها. لذلك ، الإشارة إلى صفحة WGET GNU ليست مفيدة حقًا. اسمحوا لي أن أبدأ مع ما أنا مع مثال بسيط.

 wget --mirror -w 2 -p --html-extension --tries=3 -k -P stackperl.html "https://stackoverflow.com/tags/perl"

من هذا ، يجب أن أرى https://stackoverflow.com/tags/perl صفحة في ملف stackper.html ، إذا كان لدي الأعلام صحيحة.

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

المحلول

إذا كنت تتطلع فقط إلى تشغيل أمر والحصول على نسخة من موقع ويب ، فاستخدم الأدوات التي اقترحها الآخرون ، مثل Wget, لفة, ، أو بعض أدوات واجهة المستخدم الرسومية. أستخدم أداتي الشخصية التي أسميها Webraeper (هذا ليس النوافذ Webraeper على أية حال. هناك عدد قليل من برامج Perl التي أعرفها ، بما في ذلك WebMirror وعدد قليل من الآخرين يمكنك العثور عليه CPAN.

إذا كنت تتطلع إلى القيام بذلك داخل برنامج Perl الذي تكتبه (نظرًا لأن لديك علامة "Perl" على إجابتك) ، فهناك العديد من الأدوات في CPAN يمكن أن تساعدك في كل خطوة:

حظا طيبا وفقك الله، :)

نصائح أخرى

للحصول على إصدار HTML -MIVE من مواقعك ، يمكنك استخدام WINHTTRACK - برنامج مجاني ومفتوح المصدر ، متاح. سوف يسحب الإصدارات التي تم تقديمها مسبقًا من صفحاتك ، والرسومات ، والمستندات ، والملفات الرمز البريدي ، والأفلام ، وما إلى ذلك ... بالطبع ، نظرًا لأن هذه النسخة ذاتية أي رمز خلفي ديناميكي مثل مكالمات قاعدة البيانات لن يكون ديناميكيًا بعد الآن.

http://www.httrack.com/

شخصياً ، في المرة الأخيرة التي أتعامل فيها في القيام بذلك ، كتبت نصًا بيثون الذي قام بنسخة من ذاكرة التخزين المؤقت للمتصفح ، ثم زرت يدويًا جميع الصفحات التي تمنيت أن أعكسها. حل قبيح للغاية ، ولكن لديه ميزة لطيفة لعدم تشغيل أي ، "لا تتخلص من صفحتي". شكرا ل الأوبرالم يكن شريط Tab Links ، "يدويًا" تنزيل عشرات الآلاف من الصفحات بنفس القدر من الصعوبة كما تعتقد.

سأردد التعليق "ليس واضحًا". هل هذه صفحات/مواقع ويب قمت بإنشائها ، وتريد نشرها على خوادم متعددة؟ إذا كان الأمر كذلك ، استخدم المراجع النسبية في HTML الخاص بك ، ويجب أن تكون على ما يرام. أو استخدم A فيك وضبطه على كل موقع. ولكن ، النسبية هي حقا الطريق للذهاب.

أو هل تقول أنك ترغب في تنزيل مواقع الويب (مثل صفحة Stack Overflow Homepage ، Perl.com ، إلخ) للحصول على نسخ محلية على جهاز الكمبيوتر الخاص بك؟ سوف أتفق مع دانيال - استخدم WGET.

جيم

أنا أستعمل Webraeper

يمكنك استخدام أدوات WGET GNU للاستيلاء على موقع كامل مثل هذا:

wget -r -p -np -k URL

أو ، إذا كنت تستخدم Perl ، جرب هذه الوحدات:

  • LWP :: بسيط

  • www :: ميكانيكي

إذا كان WGET معقدًا أو لم يكن لديك Linuxbox ، فيمكنك دائمًا استخدام Webzip

يبدو أنك تريد وظيفة التخزين المؤقت التي يوفرها خادم وكيل جيد.

ربما تنظر إلى شيء مثل الحبار؟ متأكد من أنها يمكن أن تفعل ذلك.

هذا هو أكثر من سؤال نوع sysadmin من البرمجة على الرغم من.

في معظم مواقع الويب الحديثة ، تروي الواجهة الأمامية جزءًا صغيرًا من القصة. بغض النظر عن أدوات تجريد HTML و CSS و JavaScript ، ستظل تفتقد الوظيفة الأساسية الموجودة في الخادم.

أو ربما كنت تعني شيئًا آخر.

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