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

این عکس رو انتخاب کردم چون شبیه به یک اسنپشات گرفتن از طبیعت بود :)زمانی که مقاله یا پستی را می‌خوانم، گاهی احساس می‌کنم ممکنه یک مطلب را فراموش کنم. مثلا اگه مقاله‌ای از ویرگول درباره یک دستور لینوکس بخوانم، برای اینکه مطلبش را فراموش نکنم باید هرزگاهی به پست سر بزنم و مطالب را مرور کنم. اما فکر کنید مطلب درباره برنامه‌ای باشد که می‌توان با استفاده از آن سانسور را دور زد، ویرگول احتمالا آن مطلب را حذف می‌کند.چه راهی برای ذخیره پست پشنهاد می‌کنید که بعدا بتوان آن را بارها مرور کرد؟اگر پست از سایت منبع حذف شود، و یا حتی خود سایت دیگر در دسترس نباشد، باز هم پستی که ذخیره کرده‌اید در دسترس است؟در این پست با استفاده از ابزار 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/