it-swarm.asia

حفظ صفحة ويب واحدة (مع صور الخلفية) مع Wget

أريد استخدام Wget لحفظ صفحات الويب الفردية (وليس بشكل متكرر ، وليس المواقع بأكملها) للرجوع إليها. يشبه إلى حد كبير "صفحة الويب ، فايرفوكس" كاملة.

مشكلتي الأولى هي: لا يمكنني الحصول على Wget لحفظ صور الخلفية المحددة في CSS. حتى لو كانت قد حفظت ملفات صور الخلفية ، فأنا لا أعتقد أن روابط التحويل ستعمل على تحويل عناوين URL لصورة الخلفية في ملف CSS للإشارة إلى صور الخلفية المحفوظة محليًا. فايرفوكس لديه نفس المشكلة.

مشكلتي الثانية هي: إذا كانت هناك صور على الصفحة أريد حفظها والتي يتم استضافتها على خادم آخر (مثل الإعلانات) فلن يتم تضمينها. - لا يبدو أن المضيفين يحلون هذه المشكلة مع السطر أدناه.

أنا أستخدم: wget --no-parent --timestamping --convert-links --page-requisites --no-directories --no-Host-directories -erobots=off http://domain.tld/webpage.html

69
user14124

من صفحة رجل Wget :

في الواقع ، لتنزيل صفحة واحدة وجميع متطلباتها (حتى لو كانت موجودة على مواقع ويب منفصلة) ، والتأكد من أن الكثير يعرض بشكل صحيح محليًا ، يحب هذا المؤلف استخدام بعض الخيارات بالإضافة إلى "-p":

wget -E -H -k -K -p http://www.example.com/

أيضًا في حالة robots.txt غير مسموح لك بإضافة -e robots=off

103
vvo

يوفر الأمر wget الخيار --mirror ، والذي يفعل نفس الشيء مثل:

$ wget -r -N -l inf --no-remove-listing

يمكنك أيضًا وضع رمز -x لإنشاء تسلسل هرمي كامل للدليل للموقع ، بما في ذلك اسم المضيف.

ربما لم تتمكن من العثور على هذا إذا كنت لا تستخدم أحدث إصدار من wget.

7
Ernie Dunbar

يبدو أن wget و Firefox لا يقوما بتحليل CSS للارتباطات لتضمين تلك الملفات في التنزيل. يمكنك التغلب على هذه القيود من خلال wget'ing ما تستطيع ، وبرمجة استخراج الارتباط من أي CSS أو Javascript في الملفات التي تم تنزيلها لإنشاء قائمة بالملفات التي فاتتها. بعد ذلك ، يمكن للجزء الثاني من wget في قائمة الروابط أن يحصل على كل ما فاتته (استخدم علامة -i لتحديد عناوين URL لملفات قائمة).

إذا كنت تحب Perl ، فهناك CSS :: Parser وحدة نمطية على CPAN والتي قد تمنحك وسيلة سهلة لاستخراج الروابط بهذه الطريقة.

لاحظ أن wget يوزع فقط بعض علامات html (href/src) و css uris (url()) لتحديد متطلبات الصفحة التي يجب الحصول عليها. قد تحاول استخدام إضافات Firefox مثل DOM Inspector أو Firebug لمعرفة ما إذا كان قد تم إضافة صور الجهات الخارجية التي لا تحصل عليها من خلال Javascript - إذا كان الأمر كذلك ، فستحتاج إلى اللجوء إلى برنامج نصي أو مكون إضافي من Firefox للحصول عليها جدا.

2
quack quixote

أدليت به Webtography لغرض مماثل: https://webjay.github.io/webtography/

ويستخدم Wget ويدفع الموقع إلى مستودع على حساب GitHub الخاص بك.

أستخدم هذه الوسائط:

--user-agent=Webtography
--no-cookies
--timestamping
--recursive
--level=1
--convert-links
--no-parent
--page-requisites
--adjust-extension
--max-redirect=0
--exclude-directories=blog

https://github.com/webjay/webtography/blob/master/lib/wget.js#L15-L26

2
webjay