دانلود یک صفحه وب با ند جی اس

17 خرداد 1400 برچسب‌ها:, ,

با Node.js میتوان صفحات سایت ها را دانلود کرد.

کدها در گیتهاب

تشریح کدها

ماژول های به کار رفته شده

کلا از دو تا ماژول fs و https استفاده شد.

این ماژول ها درون Node.js هستند و نیازی به نصب با npm یا yarn ندارند. (همانطور که میدانید نام fs مخفف File System است)

تمام کدها به 3 بخش تقسیم میشوند:

بخش اول: ارسال درخواست به ادرس صفحه ای که میخواهید دانلود کنید

بخش دوم: پاسخ درخواست را در یک متغیر جمع کنید!

بخش سوم: ذخیره داده ها در فایل junior.html

بخش اول: ارسال درخواست

با استفاده از متد https.request یک درخواست به juniorfrontend.ir میفرستیم:

{
    hostname: 'juniorfrontend.ir',
    port: 443,
    path: '/',
    method: 'GET'
}

بخش دوم: جمع کردن پاسخ ها در یک متغیر

در هنگام رویداد data ، پاسخ ها (که همان کدهای html هستند) به داخل متغیر responseBody ریخته و جمع میشوند.

res => { 
    let responseBody = '';
    res.setEncoding("utf-8"); 
    res.on('data', data => {
        console.log("--chunk--", data.length);
        responseBody += data;
    }

بخش سوم: ذخیره داده ها

با متد fs.writeFile پاسخ های دریافتی (که همان responseBody است) در یک فایل به نام junior.html ذخیره میکنیم.

fs.writeFile(
'./junior.html', 
responseBody, 
err=>{
  if (err) { throw err; }
  console.log('file downloaded!');
})

این کار با 30 خط کد انجام شد. به همین سادگی!