Arya Shabane
Arya Shabane
خواندن ۳ دقیقه·۳ سال پیش

اسنپ شات گرفتن از یک صفحه سایت با تمامی فایل های وابسته‌‌ش(عکس، استایل، جاوا اسکریپت)

این عکس رو انتخاب کردم چون شبیه به یک اسنپشات گرفتن از طبیعت بود :)
این عکس رو انتخاب کردم چون شبیه به یک اسنپشات گرفتن از طبیعت بود :)


زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، ویرگول احتمالا آن مطلب را حذف می‌کند.

  • چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟
  • اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، باز هم پستی که ذخیره کرده‌اید در دسترس است؟

در این پست با استفاده از ابزار wget یک پست را با تمامی وابستگی هایش مانند عکس ها، فایل های js، فایل های css دانلود می‌کنیم و روی سیستم خودمان ذخیره می‌کنیم تا حتی اگر سایت در دسترس نباشد و یا پست از منبع حذف شد، پست به صورت افلاین در دسترس بماند.


‏wget

می‌دونید که wget یک ابزار پیشرفته برای دانلود فایله، قابلیت های زیادی که داره باعث شده بعد از سالها که ابزار های پیشرفته‌تر دانلود هم نوشته شدن، همچنان wget استفاده بشه. این برنامه روی اکثر توزیع های لینوکس به صورت دیفالت نصبه پس بیایید بدون تلف کردن وقت سوییچ های مهم برای میرور کردن یک صفحه سایت رو برسی کنیم.


Ⅰ. --adjust-extension, -E

شاید شما سایتی هایی را دیده باشید که url صفحه هایشان با پسوند asp. به پایان می‌رسند. برای مثال نگاهی به این آدرس بیاندازید https://www.w3schools.com/python/default.asp همانطور که می‌بینید با asp به پایان می‌رسد. زمانی که شما این صفحه را دانلود کنید، این صفحه بجای پسوند html. با پسوند asp. ذخیره خواهد شد.

به همین دلیل ما از این سوییچ استفاده می‌کنیم تا صفحه ها را با پسوند html. ذخیره کنیم.
$ https://example.com/some/where # where.html


Ⅱ. --span-hosts, -H

اگر حتی فقط یک صفحه را میرور می‌کنیم، آن صفحه ممکن است به فایل های خارج از سایت که به روی یک CDN قرار گرفته اند نیاز داشته باشد، مثل عکس ها و یا style sheet ها. از اینرو وقتی شما یک صفحه را میرور می‌کنید wget فایل های خارج از سایت را دانلود نخواهد کرد.

پوشش دادن فایل های خارج از سایت با استفاده از این سوییچ انجام داده می‌شود. وقتی این سوییچ را روشن کنید wget همه لینک ها از جمله لینک هایی زیر دامنه را هم دانلود خواهد کرد، مگر اینکه عمق پوشش دادن را محدود


Ⅲ. --convert-links, -k

یک صفحه را که میرور کردیم با توجه به اینکه فایل های پیشیاز مثل عکس و استایل ها را هم دانلود کردیم، وقتی فایل را با مرورگر باز کنیم همچنان صفحه html ما به فایل های داخل سایت منبع لینک شده است و فایل های پیشنازش را حتی با اینکه روی سیستم داریم، باز هم از آدرس خارجی دریافت می‌کند و نمایش می‌دهد.

برای اینکه یک صفحه فایل های پیشنیازش را از فایل هایی که در کنار صفحه اصلی دانلود کرده است بگیرد، از این سوییچ استفاده می‌کنیم. این سوییچ تمامی لینک ها را به لینک های داخلی تبدیل می‌کند و صفحه موقع لود شدن از فایل های داخلی استفاده می‌کند.


Ⅳ. --page-requisites, -p

این سوییچ باعث می‌شود که wget تمامی فایل های ضروری برای درست نمایش داده شدن html را دانلود کند. این فایل ها شامل عکس ها، استایل ها و یا صدا ها می‌شود.


Ⅴ. --no-directories, -nd

به صورت پیشفرض زمانی که صفحه‌ای با این ادرس را دانلود کنیم

https://example.com/some/where/page.html

برنامه wget این صفحه و فایل های مورد نیازش را به این صورت ذخیره خواهد کرد

some/where/page.html/.

اما با استفاده از سوییچ nd- آن صفحه و فایل های مورد نیازش فقط داخل یک دایرکتوری ذخیره خواهد شد. به این صورت

page.html/.
با فعال کردن این سوییچ wget صفحه و فایل های پیشنیاز را داخل دایرکتوری فعلی ذخیره خواهد کرد. و اگر نام یک فایل بیش از یکبار تکرار شود، به نام فایل پسوند اضافه خواهد شد.



خارج از موضوع

همانطور که می‌دانید من مطالبم را در وبلاگ خودم هم قرار می‌دم، اگر علاقه داشتید می‌توانید این مطلب رو از وبلاگ بخوانید.

https://bit-orbit.github.io/blog/post/web-snapshout/


The only currency left in the world is POWER
شاید از این پست‌ها خوشتان بیاید